我有填充数据的表格,然后我将复选框和文本框添加到其中。下面是我的代码:
int count1 = 0;
TableCell tc;
foreach (TableRow tr in Resource_TBL.Rows)
{
tr.Cells.Add(tc = new TableCell());
CheckBox cbox = new CheckBox();
cbox.ID = ""+count1;
cbox.Attributes.Add("onclick", "document.getElementById('textbox_" + count1 + "').disabled=this.checked;");
tc.Controls.Add(cbox);
tr.Cells.Add(tc = new TableCell());
TextBox tbox = new TextBox();
tbox.ID = "textbox_" + count1;
tbox.CssClass = "form-control";
tbox.Enabled = false;
tbox.Attributes.Add("placeholder", "Enter Detail Here");
count1 += 1;
tc.Controls.Add(tbox);
}
我试过了:
cbox.Attributes.Add("onclick", "document.getElementById('textbox_" + count1 + "').Enabled=this.checked;");
但它不起作用。有错误说(无法设置属性'启用'未定义或空引用)
还有其他办法吗?
答案 0 :(得分:1)
我认为没有"启用"文本框的属性只是因为它的名称是Pascal-case。 :)
cbox.Attributes.Add("onclick", "document.getElementById('textbox_" + count1 + "').disabled = !this.checked;");
答案 1 :(得分:0)
我认为你的身份是假的 我建议你使用jquery,它在语法上更短,更容易阅读。
答案 2 :(得分:0)
int count1 = 0;
TableCell tc;
foreach (TableRow tr in Resource_TBL.Rows)
{
CheckBox cbox = new CheckBox();
cbox.ID = ""+count1;
TextBox tbox = new TextBox();
tbox.ID = "textbox_" + count1;
tbox.CssClass = "form-control";
tbox.Enabled = false;
tbox.Attributes.Add("placeholder", "Enter Detail Here");
count1 += 1;
cbox.Attributes.Add("onclick", "document.getElementById('" + tbox.ClientID + "').disabled=!this.checked;");
tr.Cells.Add(tc = new TableCell());
tc.Controls.Add(cbox);
tr.Cells.Add(tc = new TableCell());
tc.Controls.Add(tbox);
}
关于订单的一切。不要手动使用ID,因为当您使用母版页或其他控件时,ID将在页面本身上更改。使用ClientID知道页面上控件的ID。
首先创建控件。然后将它们添加到您的表层次结构中。 你也许想放一个!在此之前。检查。否则,只要您的复选框被选中,您的文本框就会被禁用。