如何设置可绑定的复选框值自动更改为男/女

时间:2009-08-25 04:42:08

标签: asp.net checkbox detailsview

我在asp.net中使用detailsview。我有性别领域。选中此字段时,复选框文本会自动更改为“男性”,否则为“女性”。 我能怎么做? 如何设置此功能的复选框?

3 个答案:

答案 0 :(得分: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 :(得分:1)

您可以使用一些简单的JavaScript来完成此操作。

Mark Up

<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

Mark Up

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

代码

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

答案 2 :(得分:1)

假设列或属性名称为Sex,如果sex为male,则为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";
}