我正在创建一个fieldset用户控件,这样可以更轻松地在我的Web应用程序中使用。
但是,由于它是用户控件,因此需要一个唯一的ID来创建控件及其内部的子控件
我有一个ASP占位符控件,允许用户控件接受子控件,但是创建一个更长更长的ClientID,这是非常必要的,因为这是标准的.NET编程。
有没有办法在我的用户控件中关闭这个自动引用,并仍然保留在fieldset所在的父对象中的引用? (顺便说一下,它在主页中......)
我要问的是---有没有办法创建一个usercontrol而没有usercontrol的子元素,其ID基于父usercontrol ...我注意到ASP UpdatePanel具有这种能力并希望复制相同的功能。
非常感谢您的反馈。
答案 0 :(得分:0)
有几种方法可以解决这个问题,4guysfromrolla
有一个很好的资源但总结一下,你的一些选择是: -
首先,您可以将所有客户端ID模式设为静态 - 查看ClientIDMode in web.config
不要制作可预测的客户端ID模式,而是在代码中使用它们的ID,例如
var txt = document.getElementById('<%=TextBoxID.ClientID%>');
因此,您可以使用ASP.NET直接将客户端ID注入HTML。
将客户端ID覆盖为每个属性的静态 - 这是您可以在.NET中指定您希望客户端ID为您正在使用的foreac控件的位置。
<asp:TextBox ID="txtName" runat="server" ClientIDMode="Static" />
希望这有帮助!