【问题标题】:Asp.Net Toggle checked property of a Data Bound checkboxAsp.Net 切换数据绑定复选框的选中属性
【发布时间】:2012-04-05 02:22:56
【问题描述】:

我有一个 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,不管它是否被切换。

有人知道这是为什么吗?

【问题讨论】:

    标签: asp.net gridview checkbox


    【解决方案1】:

    最后我找不到解决方案,所以已经解决了:

    1. 在模板字段中添加隐藏字段,
    2. 使用Javascript将隐藏字段的值更新为TrueFalse(在复选框中添加onclick属性),
    3. 在后面的代码中,将隐藏字段 value 转换为 bool 并使用它来代替复选框的选中属性。

    我认为这可能与视图状态有关,但我不确定它们是什么,而且很遗憾没有时间调查。

    克莱夫斯特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 2014-07-22
      • 2014-04-16
      • 2018-11-13
      相关资源
      最近更新 更多