如何在没有用户刷新页面的情况下为mscaptcha组件添加更新代码的刷新按钮?
我正在使用:
<httpHandlers>
<add verb="GET" path="CaptchaImage.axd" type="MSCaptcha.CaptchaImageHandler, MSCaptcha"/>
</httpHandlers>
在Visual C#中
答案 0 :(得分:1)
您编写的代码是在Web配置上。在您的页面上写下以下代码:
//ScriptManager is necessary for update panel
<asp:ScriptManager ID="sm" runat="server">
</asp:ScriptManager>
<div>
Please enter text
<asp:TextBox ID="txtCaptcha" runat="server"></asp:TextBox>
</div>
// you should use update panel because you want just the captch refresh not all
the page.
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<div>
<div style="display: inline-block">
//its captcha control
<cc1:CaptchaControl ID="Captcha1" runat="server" CaptchaBackgroundNoise="Low" CaptchaLength="5"
CaptchaHeight="60" CaptchaWidth="200" CaptchaMinTimeout="5" CaptchaMaxTimeout="240"
FontColor="#D20B0C" NoiseColor="#B1B1B1" />
</div>
<div style="display: inline-block">
// its your refresh button
<asp:ImageButton ImageUrl="~/refreshpic.png" runat="server" CausesValidation="false" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div>
<div>
<asp:CustomValidator ErrorMessage="Invalid." OnServerValidate="ValidateCaptcha" runat="server" />
</div>
<div>
<asp:Button ID="btnSubmit" runat="server" Text="Register" />
</div>
</div>
在你背后的代码上你应该写一些这样的代码:
protected void ValidateCaptcha(object sender, ServerValidateEventArgs e)
{
Captcha1.ValidateCaptcha(txtCaptcha.Text.Trim());
e.IsValid = Captcha1.UserValidated;
if (e.IsValid)
{
//do some thing
}
}