简体   繁体   中英

Button Refresh Not clearing text

I'm making a captcha for my site, nothing fancy and for personal use. My problem is that when i hit the refresh button to bring up a new image in the captcha box it should reset the captcha text box as well.

I am setting it like so

   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;

       }

When i run the debugger it shows the values entered in the text box and after when its set to "".

Here is the button and text box layout

    <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> `

Ive search on Stack for some time and everyone seems to be setting it as i have it. I have the same call to the txtCaptcha.Text = String.Empty; in another function and it works fine. any help would be grateful. If I'm unclear about something let me know and ill do my best to better explain it.

Captcha layout

You should move your TextBox inside UpdatePanel . Like So:

<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>

Read about Introduction to the UpdatePanel Control

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM