Ajax 使用 ASP.NET C# 验证码控制图像在 post 后退时间更改值
Ajax Captcha control image changing values at post back time using ASP.NET C#
Ajax 当 select 下拉列表中的任何值时,验证码控制图像更改值,使用 ASP.NET C# 自动 post 返回问题。当 select 下拉列表中的任何值时,不应更改验证码图像。我正在使用 ddl_years_SelectedIndexChanged 事件。下面是下拉列表和 ajax 验证码控制设计。
<asp:UpdatePanel ID="UpdatePanel5" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:DropDownList ID="ddl_years" runat="server" AutoPostBack="true" CssClass="Exp"
OnSelectedIndexChanged="ddl_years_SelectedIndexChanged">
<asp:ListItem Value="0">Year</asp:ListItem>
<asp:ListItem Value="1">0</asp:ListItem>
<asp:ListItem Value="2">1</asp:ListItem>
<asp:ListItem Value="3">2</asp:ListItem>
<asp:ListItem Value="4">3</asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel4" runat="server">
<ContentTemplate>
<cc1:CaptchaControl ID="CaptchaControl1" runat="server" CaptchaBackgroundNoise="None"
CaptchaHeight="40" CaptchaLength="5" CaptchaLineNoise="None" CaptchaMaxTimeout="240"
CaptchaMinTimeout="5" FontColor="111, 109, 85" Width="325px" CaptchaWidth="300"
CssClass="textarea_captha" />
</ContentTemplate>
</asp:UpdatePanel>
Ajax验证码控件设计:
<cc1:CaptchaControl ID="CaptchaControl1" runat="server" CaptchaBackgroundNoise="None"
CaptchaHeight="40" CaptchaLength="5" CaptchaLineNoise="None" CaptchaMaxTimeout="240"
CaptchaMinTimeout="5" FontColor="111, 109, 85" Width="325px" CaptchaWidth="300" CssClass="textarea_captha" />
我不知道 CaptchaControl1
控件在做什么或它如何刷新图像,但我的直觉是您只需要 refresh/present 第一页上的图像加载...
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if(!IsPostBack)
CaptchaControl1.Method_that_refreshes_the_image();
}
这假设 CaptchaControl1
是一个 user/server 控件,并且验证码图像状态在回传中保存。
另一个选项是将 UpdatePanel4
的 UpdateMode
属性 设置为 Conditional
Ajax 当 select 下拉列表中的任何值时,验证码控制图像更改值,使用 ASP.NET C# 自动 post 返回问题。当 select 下拉列表中的任何值时,不应更改验证码图像。我正在使用 ddl_years_SelectedIndexChanged 事件。下面是下拉列表和 ajax 验证码控制设计。
<asp:UpdatePanel ID="UpdatePanel5" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:DropDownList ID="ddl_years" runat="server" AutoPostBack="true" CssClass="Exp"
OnSelectedIndexChanged="ddl_years_SelectedIndexChanged">
<asp:ListItem Value="0">Year</asp:ListItem>
<asp:ListItem Value="1">0</asp:ListItem>
<asp:ListItem Value="2">1</asp:ListItem>
<asp:ListItem Value="3">2</asp:ListItem>
<asp:ListItem Value="4">3</asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel4" runat="server">
<ContentTemplate>
<cc1:CaptchaControl ID="CaptchaControl1" runat="server" CaptchaBackgroundNoise="None"
CaptchaHeight="40" CaptchaLength="5" CaptchaLineNoise="None" CaptchaMaxTimeout="240"
CaptchaMinTimeout="5" FontColor="111, 109, 85" Width="325px" CaptchaWidth="300"
CssClass="textarea_captha" />
</ContentTemplate>
</asp:UpdatePanel>
Ajax验证码控件设计:
<cc1:CaptchaControl ID="CaptchaControl1" runat="server" CaptchaBackgroundNoise="None"
CaptchaHeight="40" CaptchaLength="5" CaptchaLineNoise="None" CaptchaMaxTimeout="240"
CaptchaMinTimeout="5" FontColor="111, 109, 85" Width="325px" CaptchaWidth="300" CssClass="textarea_captha" />
我不知道 CaptchaControl1
控件在做什么或它如何刷新图像,但我的直觉是您只需要 refresh/present 第一页上的图像加载...
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if(!IsPostBack)
CaptchaControl1.Method_that_refreshes_the_image();
}
这假设 CaptchaControl1
是一个 user/server 控件,并且验证码图像状态在回传中保存。
另一个选项是将 UpdatePanel4
的 UpdateMode
属性 设置为 Conditional