创建用户控件是 .Net 没有可预测的 ClientID 模式

Create User Control is .Net without predictable ClientID Mode

我正在创建一个字段集用户控件,它可以更轻松地在我的 Web 应用程序中使用。

但是,由于它是一个用户控件,因此需要一个唯一的 ID 来创建控件和其中的子控件

我有一个 ASP 占位符控件以允许用户控件接受子控件,但创建了一个越来越长的 ClientID,这并不是真正必需的,因为这是标准的 .NET 编程。

有没有办法在我的用户控件中关闭这种自动引用,并仍然保留字段集所在的父对象中的引用? (顺便说一下,它在母版页中...)

我要问的是 --- 有没有一种方法可以创建用户控件,而用户控件的子元素的 ID 基于父用户控件...我注意到 ASP UpdatePanel 有这种能力并希望复制相同的功能。

非常感谢您的反馈。

有几种方法可以解决这个问题 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" />

希望对您有所帮助!