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

C# 创建用户控件是.Net,没有可预测的ClientID模式,c#,asp.net,vb.net,user-controls,naming-conventions,C#,Asp.net,Vb.net,User Controls,Naming Conventions,我正在创建一个fieldset用户控件,使其更易于在web应用程序中使用 但是,由于它是一个用户控件,因此需要一个唯一的ID来创建控件及其内部的子控件 我有一个ASP占位符控件,允许用户控件接受子控件,但是创建了一个越来越长的ClientID,这并不是必需的,因为这是标准的.NET编程 是否有办法在“我的用户”控件中关闭此自动引用,并在字段集所在的父对象中保留引用?(顺便说一下,它在母版页中…) 我想问的是---有没有一种方法可以创建一个usercontrol,而不让usercontrol的子元

我正在创建一个fieldset用户控件,使其更易于在web应用程序中使用

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

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

是否有办法在“我的用户”控件中关闭此自动引用,并在字段集所在的父对象中保留引用?(顺便说一下,它在母版页中…)

我想问的是---有没有一种方法可以创建一个usercontrol,而不让usercontrol的子元素的ID基于父usercontrol。。。我注意到ASP UpdatePanel具有此功能,并希望复制相同的功能


非常感谢您的反馈。

有几种方法可以解决这一问题,在

但总而言之,您的一些选择是:-

  • 首先,您可以使所有的客户机id模式都是静态的——看看

  • 不要使用可预测的客户端id模式,而是在代码中使用它们的id,例如

    var txt=document.getElementById(“”)

    因此,在这里,您可以使用ASP.NET将客户端Id直接注入HTML

  • 将每个属性的客户端ID重写为静态-在这里,您可以在.NET中指定希望客户端ID成为您正在使用的foreac控件的内容。


希望这有帮助

我跟进了这个网页,但实际上它看起来有点凌乱。我试着使用ClientID和clientdmode,但是没有任何东西可以解决“cleaner”ClientID的问题。加在HTMLIf中,“name”属性似乎根本没有改变如果我的命名容器是“m_c”,并且有一个名为“f”的字段集用户控件控件控件和ID为t的textbox,那么textbox的完整客户端ID应该是“m_c_t”,字段集应该是“透明的”,这是我切换到MVC系统进行完整访问的原因之一控制客户端的事情。我发现web表单模型有点麻烦。