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