如何使用ASP.Net为无线电输入标签设置检查值?

时间:2009-03-11 16:42:53

标签: c# asp.net javascript html

我有这个无线电标签:

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

和GetIsChecked是一个返回bool值的c#函数,我的问题是它不会影响单选按钮的检查值, 任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:8)

只需在checked上设置input属性即可对其进行检查。在HTML中,您只需要checked,在XHTML中,它应该是checked="checked",但不管怎样,如果没有选中,您将要排除整个属性。

也就是说,GetIsChecked应该(重命名并)返回"checked='checked'"String.Empty。然后,您将在输入标记本身中调用它,而不是checked属性的值(您应该删除它)。它看起来像这样:

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

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

答案 1 :(得分:0)

Bdukes 的回答是正确的。在发表这篇文章之前,我花了很多时间试图找出如何返回checked=checked

checked
checked=""
checked="checked"

是等价的。

考虑到'IsDefault'返回bool,适用于所有现代浏览器。

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

检查this以获取更多解释。