我不知道为什么,但我真的很挣扎。我想将一个可以为空的布尔属性绑定到RadioButtonList:
<asp:RadioButtonList ID="MyControl" runat="server" SelectedValue='<%# Bind("InstanceOfMyModel.MyProperty") %>'>
<asp:ListItem Text="Yes" Value="True"></asp:ListItem>
<asp:ListItem Text="No" Value="False"></asp:ListItem>
</asp:RadioButtonList>
我可以通过MyControl
访问该值,但我似乎无法绑定SelectedValue
属性。此页面背后的代码具有InstanceOfMyModel
l的公共属性MyMode
(由Session支持),它具有可为空的布尔属性MyProperty
。将类型更改为字符串不会做任何事情。 &#39;绑定&#39;属性不会改变:如果它之前是一个字符串,它是相同的字符串;如果它为null,它仍为空。
谁能告诉我自己做错了什么?是否有一些抑制转换问题?我没有收到编译或运行时错误。
答案 0 :(得分:0)
无法以声明方式设置SelectedValue
属性。你需要在后面的代码中执行此操作。
MyControl.SelectedValue = "False";
如果您真的不想使用代码,可以使用JavaScript。
<script type="text/javascript">
var myControl = "<%= MyControl.ClientID %>";
var myValue = "<%= InstanceOfMyModel.MyProperty %>";
if (myValue == "True") {
document.getElementById(myControl + "_0").checked = true;
} else {
document.getElementById(myControl + "_1").checked = true;
}
</script>