我在 ASP.NET 中创建了动态控件,如下所示..
首先我创建了复选框
CheckBox chkDynamic = new CheckBox();
然后
TextBox txtDynamic = new TextBox();
txtDynamic.ID = "txtDynamic";
这些控件添加在tablecell中添加在tableRow中添加在Table中添加在aspPanel中(仅在设计页面创建的面板)
现在我需要什么..当选中复选框时,我想使用 JavaScript 清除 txtDynamic 文本框
我尝试了以下方法但不起作用..
chkDynamic.Attributes["onclick"] = "javascript:document.getElementById('" + txtDynamic.UniqueID + "').value='';";
我也尝试将方法调用为
chkDynamic.Attributes.Add("onclick", "javascript:ClearText(this)");
但是在这个方法中,下面的行给我错误找不到“txtDynamic”..因为控件动态添加。
document.getElementById("<%= txtDynamic.ClientID %>").value="";
提前致谢......
最佳答案
经过大量调试后,我喜欢这个答案。 ASP.Net 在运行时做了什么,它通过附加父控件一些前缀来更改控件的 ClientID,因此在我在创建的所有 TR 的末尾添加整个表之前,现在我为解决此问题所做的操作我添加了将表格添加到面板 plDynamicControls.Controls.Add(tblGeneralControls);
然后我添加了以下代码,它的工作原理就像魅力
chkDynamic.Attributes["onclick"] = string.Format("yearSuffixCHK(this, '{0}')", txtDynamic.ClientID);
txtDynamic.Attributes["onchange"] = string.Format("yearSuffixTXT(this, '{0}')", chkDynamic.ClientID);
关于c# - 如何在使用 asp.net 创建的 Javascript 中查找动态控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4012479/