输入字段的自定义属性中的Asp.net呈现控件客户端id

本文关键字:控件 客户端 id Asp 字段 自定义属性 输入 net | 更新日期: 2023-09-27 18:04:20

我的aspx页面有以下html

<asp:Textbox id="myTextField" runat="server" cssclass="mycssclass" data-control-id="<%= search.ClientID %>"></asp:textbox>
<asp:Button ID="search" runat="server" Text="Search" />

问题是"<%= search.ClientID %>"呈现,因为它是在aspx文件。我需要渲染控件的客户端id

输入字段的自定义属性中的Asp.net呈现控件客户端id

And call

page_Load中的this.DataBind();

(注意<%#的变化)

<asp:Textbox id="myTextField" runat="server" cssclass="mycssclass" data-control-id="<%# search.ClientID %>"></asp:textbox>

另一个(更方便的解决方案)是使用不在服务器端的html元素:

  <input type='text' id="myTextField" runat="server" class="mycssclass" data-control-id="<%= search.ClientID %>" />
然后通过Request.Form[...] (via name attribute)获取

如果您想知道客户端ID将是什么,那么搜索并阅读有关设置"ClientIDMode"的信息-例如,将其设置为Static,将在DOM中设置客户端ID等于您设置的服务器端ID。只需确保在页面上只有一个控件实例,否则您将有多个具有该ID的控件,这将无法运行。如果该控件位于重复器、项目模板或任何其他"重复"控件中,则为循环添加索引计数器,以动态更改其ID。