2009-08-25 6 views
0

asp.netでdetailsviewを使用しています。私は性別のフィールドを持っています。このフィールドがチェックされると、チェックボックスのテキストは自動的に「男性」に変更され、それ以外の場合は「女性」に変更されます。 どうすればいいですか? この機能にチェックボックスを設定するにはどうすればよいですか?設定方法バインド可能なチェックボックスの値が自動的に男性/女性に変更されました

答えて

1

私はあなたが実際にこれをやっていない願っていますが、以下はそれを達成します:

protected void chkSex_CheckedChanged(object sender, EventArgs e) 
{ 
    CheckBox chkSex = (CheckBox)sender; 
    chkSex.Text = SexString(chkSex.Checked); 
} 
protected string SexString(bool sex) 
{ 
    return sex ? "Male" : "Female"; 
} 

とマークアップを:

<asp:UpdatePanel runat="server"> 
    <ContentTemplate> 
     <asp:CheckBox runat="server" 
      Checked='<%# Eval("Sex") %>' 
      OnCheckedChanged="chkSex_CheckedChanged" 
      AutoPostBack="true" 
      Text='<%# SexString((bool)Eval("Sex")) %>'/> 
    </ContentTemplate> 
</asp:UpdatePanel> 
1

あなたはいくつかの簡単なJavaScriptでこれを行うことができます。

マークアップ

<label id="sexLabel" for="sexCheckBox">Male</label> 
<input id="sexCheckBox" type="checkbox" onclick="sexClick(this);" /> 

コード

function sexClick(checkbox) { 
    document.getElementById('sexLabel').innerHTML = (checkbox.checked) ? 'Female' : 'Male';  
} 

jQueryの

マークアップ

<label id="sexLabel" for="sexCheckBox">Male</label> 
<input id="sexCheckBox" type="checkbox" /> 

コード

$(function() { 
    $('#sexCheckBox').click(function() { 
     $('#sexLabel').text((checkbox.checked) ? 'Female' : 'Male'); 
    }); 
}); 
+0

ハ、私は船外に行ってきました。 –

1

列またはプロパティ名がSexであり、性別が男性の場合はtrueであるとします。マークアップでこれを使用します。

<asp:CheckBox runat="server" ID="chkSex" Text='<%# GetText((bool)Eval("Sex"))%>' 
     Checked='<%# Eval("Sex")%>' /> 

書き込みコードビハインドでこの方法:

protected static object GetText(bool b) 
{ 
    return b ? "Male" : "Female"; 
} 
関連する問題