在ASP.NET中绑定SelectedValue

时间:2016-10-28 00:08:26

标签: c# asp.net web-applications data-binding

我不知道为什么,但我真的很挣扎。我想将一个可以为空的布尔属性绑定到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,它仍为空。

谁能告诉我自己做错了什么?是否有一些抑制转换问题?我没有收到编译或运行时错误。

1 个答案:

答案 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>
相关问题