DataGrid ItemDataBound没有按预期绑定

时间:2018-05-25 13:37:58

标签: asp.net

我使用DataGrid的ItemDataBound来执行以下任务:

  1. 检查行中CheckBox的Checked Value。
  2. 根据选中的值设置同一行中三个文本框的Enabled Property。
  3. 这是我的代码:

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
    
                CheckBox ck = (CheckBox)e.Item.FindControl("chkStatus");
                bool isChecked = ck.Checked;
                TextBox txt1 = ((TextBox)e.Item.FindControl("txt1"));
                TextBox txt2 = ((TextBox)e.Item.FindControl("txt2"));
                TextBox txt3 = ((TextBox)e.Item.FindControl("txt3"));
                txt1.Enabled = isChecked;
                txt2.Enabled = isChecked;
                txt3.Enabled = isChecked;
     }

    当我放置Break Point并检查值Enabled是否正确设置。例如,如果CheckBox已选中,则所有三个textboxes.Enabled属性设置为true,否则设置为false。但是,一旦我按下继续,具有CheckBox Checked的行将启用所有三个文本框。但是取消选中复选框的行,也会启用三个文本框而不是禁用它们。

    这是一个截屏: enter image description here

    有人可以解释我的代码中有什么问题吗?我想知道ItemDataBound事件完成后会发生什么。是否有任何其他功能被自动调用,这会搞乱这些值。我甚至尝试过启用视图状态。但仍然没有用。

    我设置BackGround Color属性。没事。但是Eanbled Property并没有被设置为假。

    enter image description here

    先谢谢。

1 个答案:

答案 0 :(得分:0)

通过明确设置文本框的禁用属性(如

)来解决此问题
txt1.Attributes[“disabled”]=“disabled”;