将自定义ascx属性应用于底层html
本文关键字:html 应用于 属性 自定义 ascx | 更新日期: 2023-09-27 18:26:02
我看到了:UserControl(*.ascx)中的自定义属性?但它并没有解决我正在处理的场景。
假设我有一个控制
<MyTag:MyWrappingWidget runat="server" />
它包装了一个asp:TextBox。我希望能够应用许多自定义属性(例如,用于谷歌分析)
<MyTag:MyWrappingWidget runat="server" data-mycustom-category="My Category" data-mycustom-action="click" data-mycustom-value="1" data-mycustom-label="My Label"/>
并将它们应用于底层输入框,从而可用于Javascript进行处理。
<input type="text" data-mycustom-category="My Category" data-mycustom-action="click" data-mycustom-value="1" data-mycustom-label="My Label"/>
当将这些属性应用于asp:TextBox,但不应用于包装它的控件时,这可以正常工作。我需要对包装控件做什么才能使它以同样的方式工作?
注意:向MyWrappingWidget添加一些属性并不能解决问题。这些"上下文感知"属性只在它们所使用的页面上具有相关性。如果控件在另一个上下文上使用,我们需要使用一组不同的属性。认为设计超出了这个问题的范围。。我只需要让它发挥作用
在控件的Page_Load中放入以下内容:
Dim keys As IEnumerator = Me.Attributes.Keys.GetEnumerator()
While keys.MoveNext
Dim key As String = keys.Current.ToString
If key.Contains("data-") Then
TextBox1.Attributes.Add(key, Me.Attributes(key))
End If
End While