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

时间:2014-05-21 12:13:27

标签: c# asp.net expression

我的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。

2 个答案:

答案 0 :(得分:4)

你的意思:

并致电

this.DataBind();

中的

page_Load

(注意<%#中的更改)

<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[...](通过名称属性)

获取

答案 1 :(得分:0)

如果您想知道客户端ID是什么,请搜索并阅读有关设置&#34; ClientIDMode&#34; - 例如,将其设置为Static会将DOM中的客户端ID设置为等于您设置的服务器端ID。只需确保在您的页面上只有一个该控件的实例,否则您有多个具有该ID的控件,并且不会飞。如果该控件将在转发器,项目模板或任何其他&#34;重复&#34;控制,然后为循环添加一个索引计数器,以稍微动态地改变ID。