在我的表单中,我需要插入“文本”类型的不同输入。输入必须是带有名称和 ID 的 html 控件。因为我将此表单发送到外部网址。
对于验证,我在所有输入中执行 runat=server ,然后我可以使用 requiredfieldvalidator 。
但问题是,当我访问该页面后查看源代码时,名称和 ID 都已更改。
例如
<input id="first_name" class="formright" type="text" name="first_name" runat="server" />
更改为
<input name="ctl00$cphContent$first_name" type="text" id="ctl00_cphContent_first_name" class="formright">
我必须使用 html 控件,因为外部 postbackurl 会查看名称和 id 值来查找控件。所以我不能使用asp控件。这是因为我使用了带有 runat=server 的 html 控件
我很感激任何帮助
这是因为您正在使用母版页。
内容页中包含的控件采用基于母版页层次结构的动态 ID,以避免 ID 重复。
如果需要在客户端脚本中引用控件ID和名称,可以使用<%= first_name.ClientID %>
.
如果您使用.NET4,您可以使用ClientIDMode="Static" http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx使生成的 ID 保持一致,尽管这会带来 ID 冲突警告,例如在页面上使用同一用户控件的多个实例时。里克·斯特拉尔 (Rick Strahl) 概述了这些here http://www.west-wind.com/weblog/posts/54760.aspx.
但是,如果您使用 ASP.NET 验证器,那么一切都应该没问题。而不是使用 HTMLinput
你应该使用ASP.NET 文本框控件 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.aspx:
<asp:TextBox id="first_name" runat="server" CssClass="formright" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)