我使用DataGrid的ItemDataBound来执行以下任务:
这是我的代码:
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的行将启用所有三个文本框。但是取消选中复选框的行,也会启用三个文本框而不是禁用它们。
有人可以解释我的代码中有什么问题吗?我想知道ItemDataBound事件完成后会发生什么。是否有任何其他功能被自动调用,这会搞乱这些值。我甚至尝试过启用视图状态。但仍然没有用。
我设置BackGround Color属性。没事。但是Eanbled Property并没有被设置为假。
先谢谢。
答案 0 :(得分:0)
通过明确设置文本框的禁用属性(如
)来解决此问题txt1.Attributes[“disabled”]=“disabled”;