c# - 如何在使用 asp.net 创建的 Javascript 中查找动态控件

标签 c# javascript asp.net dynamic

我在 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/

相关文章:

c# - 获取同步网关心跳

c# - OnCheckedChanged 事件根本没有在 GridView 中触发

c# - 将通用集合转换为字符串列表

javascript - 固定元素在 Safari 上没有被 jquery 居中

javascript - ASP.net JavaScript MS Outlook

c# - 在 Windows 操作系统中安装软件/应用程序时会发生什么?

javascript - 如何从url中获取参数?

javascript - 无法测试 canActivate() 的错误路径 - Angular2+

javascript - 当我单击按钮 asp.net (angularjs) 时如何重新加载 ng-repeat

javascript - 与 CKEditor 3 集成的 ASPNetSpell 拼写检查器不适用于 Chrome