开发者

Textbox value not getting cleared

In the below code TextBox value is not getting cleared after clicking on Button.

Default.aspx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <br />
    <asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick" Interval="20">
    </asp:Timer>
    <br />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
                <asp:AsyncPostBackTrigger controlid="Timer1" eventname="Tick" />
            </Triggers>
        <ContentTemplate>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <asp:Repeater ID="Shout_Box" runat="server">
            <ItemTemplate>
               <%# DataBinder.Eval(Container.DataItem, "Message") %>
            </ItemTemplate>
        </asp:Repeater>

        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        </Con开发者_StackOverflowtentTemplate>
    </asp:UpdatePanel>
    <asp:TextBox ID="TextBox1" runat="server">
        </asp:TextBox>
    </form>
</body>
</html>

C# code for button click.

protected void Button1_Click(object sender, EventArgs e)
{
    string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=repeater;" + "UID=root;" + "PASSWORD=********;" + "OPTION=3";
    OdbcConnection MyConnection = new OdbcConnection(MyConString);
    OdbcCommand cmd = new OdbcCommand("INSERT INTO table1(message)VALUES(?)", MyConnection);
    cmd.Parameters.Add("@email", OdbcType.VarChar, 255).Value = TextBox1.Text;
    MyConnection.Open();
    cmd.ExecuteNonQuery();
    MyConnection.Close();
    TextBox1.Text = "";
}

I tried adding a line as above TextBox1.Text = ""; to clear text but no use. Please do not ask me to keep Button outside the updatepanel tag. I need the event to be done without posting back the page.

If TextBox is inside Due to timer trigger for ever 20 fsecs the textbox is too blinking and not allowing to edit. To say simply TextBox is refreshing and not allowing even a single bit of text to add.

I don't want to extend this to JavaScripts and other to clear a value in textbox. Can anybody tell me how to clear the textbox value using C#.


Use another update panel and in Page_Load function add UpdatePanedid.Update(); Hope this helps you.


the textbox1 needs to be inside the </ContentTemplate></asp:UpdatePanel> Only that within the updatepanel will get updated when you click the button


Move the Textbox inside the UpdatePanel. Your button only triggers the contents of UpdatePanel to be reloaded, not the ones outside of it.


You say you don't want to use Javascript and you want to use C# but what if you could write the Javascript in C# and have it executed on the client after the partial postback from the UpdatePanel has been completed?

You could add the following to your Button1_Click method:

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "myScript", "document.getElementById('" + TextBox1.ClientID + "').value = '';", true);

The above snippet executes Javascript on the client after the partial postback and sets the value of TextBox1 to an empty string.


What worked for me was to use chromes and inspect the combobox element for the html name the browser gives it and using this code:

ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType(), "myScript", "document.getElementById('ctl00_m_g_8559e7aa_7fc2_4e23_b9b5_bf638f7e2699_ctl00_cboCustomers_TextBox').value = '';", True)

ctl00_m_g_8559e7aa_7fc2_4e23_b9b5_bf638f7e2699_ctl00_cboCustomers_TextBox

is the unique name given during rendering, i'm pretty sure the name does not change

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜