How to set checked value for a radio input tag using ASP.Net?

I have this radio tag:

<input name="phoneRadio" class="phoneRadio" id="rbDefaultPhone" 
    type="radio" checked="<%# GetIsChecked(Eval("IsDefault")) %>"/>

in a repeater and GetIsChecked is ac# function which return bool value, my problem that its not affecting the checked value of the radio button the right way, Any one know how to fix that?


Just having the checked attribute on the input is enough to make it checked. In HTML, you just need to have checked in there, in XHTML, it should be checked="checked" , but either way, you'll want to exclude the whole attribute if it isn't checked.

That is, GetIsChecked should (be renamed and) return either "checked='checked'" or String.Empty . You will then call it just in the input tag itself, not as the value for the checked attribute (which you should remove). It'll look something like this:

<input name="phoneRadio" class="phoneRadio" id="rbDefaultPhone" type="radio" <%# GetChecked(Eval("IsDefault"))%> />

protected string GetChecked(object isDefault)
{
    return (bool)isDefault ? "checked='checked'" : string.Empty;
}

Bdukes 's answer is correct. Before coming to this post, I spent lot of time in trying to figure out how to return checked=checked but

checked
checked=""
checked="checked"

are equivalent.

Considering 'IsDefault' returns bool,works well in all modern browsers.

<input name="phoneRadio" class="phoneRadio" id="rbDefaultPhone"  type="radio" 
 checked='<%#Eval("IsDefault")%>'

Check this for more explanation.

链接地址: http://www.djcxy.com/p/56046.html

上一篇: jquery无法以编程方式设置prettyCheckable插件单选按钮

下一篇: 如何使用ASP.Net设置无线电输入标记的检查值?