Page.IsValid无法与更新面板一起使用 [英] Page.IsValid not working with the update panels
本文介绍了Page.IsValid无法与更新面板一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我单击图像按钮时,光标返回到第一个文本框.
在后面的代码中我有这个吗?
when I click the image button the cursor goes back to the first textbox.
in the behind code I have this?
<br />
<pre lang="cs">protected void imgRegister_Click(object sender, ImageClickEventArgs e)<br />
{<br />
<br />
System.Threading.Thread.Sleep(2000);<br />
<br />
if (Convert.ToInt32(search_age_start.SelectedValue) > Convert.ToInt32(search_age_end.SelectedValue))<br />
{<br />
lblMessage.Text = "Minimum age should be less than or equal to maximum age.";<br />
search_age_start.Focus();<br />
return;<br />
}<br />
<br />
if (ctrlCaptcha != null)<br />
{<br />
if (!ctrlCaptcha.ValidateCaptcha())<br />
{<br />
lblMessage.Text = "Invalid Access Code, try again.";<br />
return;<br />
}<br />
}<br />
<br />
if (Page.IsValid)<br />
{</pre><br />
<br />
<pre lang="xml"><asp:UpdatePanel ID="UpdatePanel1" runat="server"><br />
<ContentTemplate><br />
<asp:ImageButton ID="imgRegister" runat="server" onmouseover="~/Images/Buttons/rollover2.jpg"<br />
onmouseout="~/Images/Buttons/rollover1.jpg" Font-Bold="True" ImageUrl="~/Images/Buttons/rollover1.jpg"<br />
OnClick="imgRegister_Click" /><br />
</ContentTemplate><br />
</asp:UpdatePanel><br />
<asp:UpdateProgress ID="UpdateProgress1" runat="server"><br />
<ProgressTemplate><br />
<img alt="" runat="server" src="../../Images/ajax-loader.gif" /><br />
Loading ...<br />
</ProgressTemplate><br />
</asp:UpdateProgress></pre><br />
<br />
推荐答案
嗨
要查看您的页面的一件事是,图像按钮没有CausesValidation ="true".
这是一个例子
在aspx页面上
Hi
One thing to look at your page is, there is no CausesValidation="true" for the image button.
Here is an example
On the aspx page
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="script1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" Visible="true">
<ContentTemplate>
<asp:Label runat="server" Text="This is a required field" ></asp:Label>
<asp:TextBox ID="text1" runat="server" ></asp:TextBox>
<asp:Label ID="validation_result" runat="server" ></asp:Label>
<asp:CustomValidator ID="CustomValidator1" runat="server"
ControlToValidate="text1" OnServerValidate ="validateTextBox"></asp:CustomValidator>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server"
ControlToValidate="Text1"
ErrorMessage="Password Should Not Be Empty"
Display="Dynamic">
</asp:RequiredFieldValidator>
<asp:ImageButton ID="imgRegister" runat="server"
Font-Bold="True" ImageUrl="~/App_Data/arrow.png"
OnClick="imgRegister_Click" CausesValidation="true"/>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
在后面的代码中...
In the code behind...
protected void imgRegister_Click(object sender, ImageClickEventArgs e)
{
if (Page.IsValid == true)
{
this.validation_result.Text = "Validated";
}
else
{
this.validation_result.Text = "Password should be 8 or more in characters";
}
}
protected void validateTextBox(object sender, ServerValidateEventArgs e)
{
if (Convert.ToString(e.Value).Length > 7)
{
e.IsValid = true;
}
else
{
e.IsValid = false;
}
}
这篇关于Page.IsValid无法与更新面板一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文