poohbear
poohbear

Reputation: 452

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

Upvotes: 0

Views: 431

Answers (1)

Afnan Ahmad
Afnan Ahmad

Reputation: 2542

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

Upvotes: 1

Related Questions