簡體   English   中英

在ASP.NET和C#中獲取文本框的更新值

[英]Getting updated value of Textbox in asp.net and c#

我在此問題上進行了大量搜索和發布,但未能獲得滿意的答復。我想確保每次我對服務器進行呼叫時,Textbox的值應為最新的值。

但是,當我調用服務器時,文本框的舊值仍然存在。我知道這與回發有關,但是我沒有獲得在.cs文件中獲取文本框更新值的確切方法。

請告訴我應該采取哪些必要步驟以始終獲取文本框的最新值。

這是我的代碼不起作用:

protected void Page_Load(object sender, EventArgs e)
    {


        int contentID = Convert.ToInt32(Request.QueryString["contentid"]);
        if (contentID != 0)
        {
                if (!this.IsPostBack)
                {
                getContentBody(contentID);
                TextBox1.Text = content;
                msg_lbl.Text="Inside not PostBack";
                }
                else
                {
                getContentBody(contentID);
                TextBox1.Text = content;
                msg_lbl.Text="Inside PostBack";
                }
            }


            else
                Response.Write("Invalid URL for article");


    }



 public void getContentBody(int contentID)
    {
        try
        {
            //////////////Opening the connection///////////////

            mycon.Open();
            string str = "select content from content where contentID='" + contentID + "'";
            //Response.Write(str);
            MySqlCommand command1 = mycon.CreateCommand();
            command1.CommandText = str;
            dr = command1.ExecuteReader();
            if (dr.Read())
            {
                content = dr[0].ToString();
            }
        }
        catch (Exception ex)
        {
            Response.Write("Exception reading data" + ex);
        }
        finally
        {
            dr.Close();
            mycon.Close();
        }
    }

 protected void Button2_Click(object sender, EventArgs e)
    {
            //string textboxvalue = Request.Form[TextBox1.UniqueID];

            mycon.Open();
            string query = "update content set content='" +TextBox1.Text + "' where contentID= '"+contentID +"'";
            msg_lbl.Text = query;
            try
            {
                MySqlCommand command1 = mycon.CreateCommand();
                command1.CommandText = query;
                command1.ExecuteNonQuery();
                msg_lbl.Text = "text" + TextBox1.Text;
            }
            catch (Exception ex)
            {
                msg_lbl.Text = "Exception in saving data" + ex;
            }
            finally
            {
                mycon.Close();

            }


    }

這是我的aspx頁面代碼:

      <asp:TextBox ID="TextBox1" runat="server" Height="500px" 
             TextMode="MultiLine" Width="90%" AutoPostBack="True"></asp:TextBox>
    </p>
    <p>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button1" runat="server" Text="Delete post" />
        &nbsp;
        <asp:Button ID="Button2" runat="server" onclick="Button2_Click" 
            Text="Save changes" />
&nbsp;
        <asp:Button ID="Button3" runat="server" Text="Cancel" />
    </p>

還請告訴我為什么它不起作用以及如何使它起作用。

謝謝,

阿曼迪普

根據ASP.NET的生命周期,Page_Load在Button2_Click之前執行,因此您必須在Button2_Click中顯示更新的文本:

protected void Page_Load(object sender, EventArgs e)
{


    contentID = Convert.ToInt32(Request.QueryString["contentid"]);
    if (contentID != 0)
    {
        if (!this.IsPostBack)
        {
            getContentBody(contentID);
            TextBox1.Text = content;
            msg_lbl.Text = "Inside not PostBack";
        }
    }
    else
        Response.Write("Invalid URL for article");
}

public void getContentBody(int contentID)
{
    try
    {
        //////////////Opening the connection///////////////

        mycon.Open();
        string str = "select content from content where contentID='" + contentID + "'";
        //Response.Write(str);
        MySqlCommand command1 = mycon.CreateCommand();
        command1.CommandText = str;
        dr = command1.ExecuteReader();
        if (dr.Read())
        {
            content = dr[0].ToString();
        }
    }
    catch (Exception ex)
    {
        Response.Write("Exception reading data" + ex);
    }
    finally
    {
        dr.Close();
        mycon.Close();
    }
}

protected void Button2_Click(object sender, EventArgs e)
{
    //string textboxvalue = Request.Form[TextBox1.UniqueID];

    mycon.Open();
    string query = "update content set content='" + TextBox1.Text + "' where contentID= '" + contentID + "'";
    msg_lbl.Text = query;
    try
    {
        MySqlCommand command1 = mycon.CreateCommand();
        command1.CommandText = query;
        command1.ExecuteNonQuery();
        getContentBody(contentID);
        TextBox1.Text = content;

        msg_lbl.Text = "text" + TextBox1.Text;
    }
    catch (Exception ex)
    {
        msg_lbl.Text = "Exception in saving data" + ex;
    }
    finally
    {
        mycon.Close();

    }


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM