как настроить привязываемый флажок, значение которого автоматически меняется на мужской / женский - PullRequest
0 голосов
/ 25 августа 2009

Я использую detailsview в asp.net. У меня есть гендерное поле. когда это поле отмечено, текст флажка автоматически меняется на «мужской», в противном случае «женский» Как я могу сделать? Как установить флажок для этой функции?

Ответы [ 3 ]

1 голос
/ 25 августа 2009

Вы можете сделать это с помощью простого 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');
    });
});
1 голос
/ 25 августа 2009

Предположим, что столбец или имя свойства имеет пол и является истинным, если пол мужской. Используйте это в разметке:

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

напишите этот метод в коде:

protected static object GetText(bool b)
{
    return b ? "Male" : "Female";
}
1 голос
/ 25 августа 2009

Хотя я надеюсь, что вы на самом деле этого не делаете, следующее выполнит:

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>
...