Asp.Net Toggle检查Data Bound复选框的属性

时间:2010-08-09 09:52:06

标签: asp.net gridview checkbox

我有一个GridView控件,其中有一列复选框设置如下:

<asp:TemplateField>
   <ItemTemplate>
        <asp:CheckBox ID="RowCheckBox" runat="server" Enabled="false" Checked='<%# (bool)DataBinder.Eval(Container.DataItem ,"Associated") %>'/>
   </ItemTemplate>
</asp:TemplateField>

然后,当用户单击“编辑”按钮时,我会运行一个启用所有复选框的脚本(工作正常),然后当用户点击复选框时,勾选正在显示或消失。

我遇到的问题是,当我尝试从代码隐藏中读取复选框的值时:

CheckBox checkBox = (CheckBox) row.FindControl("RowCheckBox");
bool checked = checkBox.Checked;

如果与其绑定的值为true,则checked仍为true,无论是否切换。

有没有人知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

最后我找不到解决方案,所以做了一个解决方法:

  1. 向模板字段添加隐藏字段
  2. 使用Javascript(在复选框中添加True属性)将隐藏字段的值更新为Falseonclick
  3. 在后面的代码中,将隐藏字段value强制转换为bool并使用该字段而不是复选框的checked属性。
  4. 我认为这可能与View States有关,但我不确定它们是什么,并且不幸的是没有时间进行调查。

    Clivest