按钮刷新不清除文本

时间:2017-01-12 16:26:45

标签: c# asp.net updatepanel

我正在为我的网站制作验证码,没有任何花哨和供个人使用。我的问题是,当我点击刷新按钮在验证码框中调出一个新图像时,它也应该重置验证码文本框。

我这样设置

   protected void btnRefresh_Click(object sender, EventArgs e)
    {
        //This is the call that creates a new image   
        FillCaptcha();

        // to clear the text box
        txtCaptcha.Text = String.Empty;

       }

当我运行调试器时,它会显示在文本框中输入的值以及设置为“”之后的值。

这是按钮和文本框布局

    <asp:TableRow>
     <asp:TableCell>
                Enter Below Captcha Code :
     </asp:TableCell>
      <asp:TableCell>
       <asp:TextBox ID="txtCaptcha" runat="server" Width="200px"></asp:TextBox>
         </asp:TableCell>
        </asp:TableRow>
          <asp:TableRow>
            <asp:TableCell>
            </asp:TableCell>
            <asp:TableCell VerticalAlign="middle">
                <asp:ScriptManager ID="ScriptManager1" runat="server"> 
                </asp:ScriptManager>       
                <asp:UpdatePanel ID="UP1" runat="server">
                    <ContentTemplate>
                        <table>
                            <tr>
                                <td style="height: 50px; width:120px; border:solid; border-color:blue; text-align:center;">
                                    <asp:Image ID="imgCaptcha" runat="server" />
                                </td>
                                <td valign="middle">
                                    <asp:Button ID="btnRefresh" runat="server" Text="Refresh" OnClick="btnRefresh_Click" />
                                </td>
                            </tr>
                        </table>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:TableCell>
        </asp:TableRow> `

我已经在Stack上搜索了一段时间,每个人似乎都在设置它,就像我拥有它一样。我在另一个函数中对txtCaptcha.Text = String.Empty;进行了同样的调用,它运行正常。任何帮助都会感激不尽。如果我不清楚某些事情让我知道,我会尽力做好解释。

Captcha layout

1 个答案:

答案 0 :(得分:1)

您应该将TextBox移到UpdatePanel内。像所以:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
        </asp:ScriptManager>       
        <asp:UpdatePanel ID="UP1" runat="server">
            <ContentTemplate>
                <table>
                    <tr>
                        <td colspan="2">
                            <asp:TextBox ID="txtCaptcha" runat="server" Width="200px"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td style="height: 50px; width:120px; border:solid; border-color:blue; text-align:center;">
                            <asp:Image ID="imgCaptcha" runat="server" />
                        </td>
                        <td valign="middle">
                            <asp:Button ID="btnRefresh" runat="server" Text="Refresh" OnClick="btnRefresh_Click" />
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </asp:UpdatePanel>

了解Introduction to the UpdatePanel Control