Asp.net 验证失败后停止在图像中回发按钮
我有一个aspx页面,包含一个文本框和一个用于搜索的图像按钮。我使用了比较验证器(检查整数值)和文本框。但即使我输入字母数字字符,页面也会在图像按钮上重新加载,并显示错误消息 我尝试改用regularexpressionvalidator,但问题仍然存在 但当我使用一个简单的asp:按钮并将其与textbox验证绑定在一起时,其工作正常(即textbox的值不正确时不会发生回发),dropdownlist也一样(不会发生回发) 请建议 这是密码- @这是密码Asp.net 验证失败后停止在图像中回发按钮,asp.net,Asp.net,我有一个aspx页面,包含一个文本框和一个用于搜索的图像按钮。我使用了比较验证器(检查整数值)和文本框。但即使我输入字母数字字符,页面也会在图像按钮上重新加载,并显示错误消息 我尝试改用regularexpressionvalidator,但问题仍然存在 但当我使用一个简单的asp:按钮并将其与textbox验证绑定在一起时,其工作正常(即textbox的值不正确时不会发生回发),dropdownlist也一样(不会发生回发) 请建议 这是密码- @这是密码 <asp:ImageButto
<asp:ImageButton ID="btnSearch" runat="server" OnClick="btnSearch_Click"
ToolTip="Search" ValidationGroup="valControl" CausesValidation="true" />
<asp:TextBox ID="txtWidth" CssClass="TextFont" runat="server"
Width="233px" MaxLength="20"
ValidationGroup="valControl" CausesValidation="true"></asp:TextBox>
<asp:CompareValidator runat="server" ID="cmpValWidth"
ErrorMessage="Please enter integer values" ControlToValidate="txtWidth" Display="Dynamic"
Operator="DataTypeCheck" ValidationGroup="valControl"Type="Integer"/>
听起来你需要写作
if(!isPostBack)
{
“您的代码”
在代码背后。要防止代码在第一次未查看页面时运行请将其从文本框中删除,您只需要在验证程序和按钮上使用它:
ValidationGroup="valControl" CausesValidation="true"
如果禁用了javascript,则不会进行客户端验证,因此请始终检查服务器端的有效性:
if(Page.IsValid)
{
"your btnSearch_Click code"
}
您可以发布文本框、图像按钮和比较验证程序的代码吗?听起来您可能已经将其中一个分配给了验证组,但没有将另一个分配给验证组。如果答案对您有帮助,请不要忘记接受答案…我尝试在文本框上不使用ValidationGroup=“valControl”CausesValidation=“true”,但没有用。。。我试着用简单的asp:按钮检查验证,甚至用一个下拉菜单(当选定的索引被更改时)也可以检查验证。。此图像按钮存在创建问题。@MeghaGupta您的图像按钮是否有客户端代码(请检查页面源代码或使用浏览器开发工具)-如果有,请在此处发布,但基本上它不能有任何
return
语句…是的,它有一些客户端。。基本上,通过javascript验证文本框等其他控件中的数据,并根据验证是否成功分别返回真/假。。客户端代码中的任何返回stmt有什么关系?@MeghaGupta default asp.net validation在onclick
事件中没有任何返回语句,因此您可能添加了一个“确定吗?”提示窗口,或者在验证代码之前添加了一个返回语句,有效地使其完全无法访问…感谢您的回复。。问题是(正如你提到的)客户端代码中有一个return语句,wz在导致回发的button click事件上执行该语句。无论任何其他asp.net验证如何,都将始终执行任何客户端代码。如果有像“return true”这样的返回stmt,它总是会导致回发。谢谢:)
if(Page.IsValid)
{
"your btnSearch_Click code"
}