3

ページの読み込み時にデータベースから特定の情報を取得し、多数のテキストボックスに入力する Web サイトがあります。ユーザーは、変更を加えたい場合にこれらのテキストボックスの内容を変更し、変更を保存できます。

これは、変更を保存する前にボックスの内容を取得するために使用しているものです。

string username = Session["Username"].ToString();
string vendor_name = Textbox_Vendor.Text;
string address = Textbox_Address.Text;
string city = Textbox_City.Text;
string country = Textbox_Country.Text;

今、私が抱えている主な問題は、取得される値が古い値であることです。たとえば、ページの読み込み時に tel フィールドが 12345678 で、ユーザーがテキストボックスの値を 789046778 に変更したとします。変更を保存する直前に変数 tel に読み込まれる値は、789046778 ではなく 12345678 です。

テキストボックスから新しく更新された値を取得するにはどうすればよいですか? ありがとうございました :)

ページ読み込み

protected void Page_Load(object sender, EventArgs e)
{
    Label_Error.Visible = false;
    Encryption enc = new Encryption();

    if (Session["Username"] == null)
    {
        Response.Redirect("HomePage.aspx");
    }

    else
    {
        string username = Session["Username"].ToString();
        string vendor_name = "";
        string address = "";
        string city = "";
        string country = "";
        bool exists1 = false;
        bool error1 = true;

        try
        {
            string connection1 = ConfigurationManager.ConnectionStrings["DB_Connection"].ConnectionString;
            SqlConnection conn1 = new SqlConnection(connection1);
            SqlDataReader rdr1 = null;

            conn1.Open();
            SqlCommand cmd1 = new SqlCommand("GetByUsername", conn1);
            cmd1.CommandType = CommandType.StoredProcedure;
            cmd1.Parameters.AddWithValue("@username", username);
            rdr1 = cmd1.ExecuteReader();
4

1 に答える 1

5

の古い値によって新しい値が上書きされていますPage_Load。ページの読み込みごとに古い値をテキストボックスに割り当てていますが、実際には最初の呼び出し時にのみこれを行いたいと考えています。ポストバックでは、何も割り当てる必要はありません:

if (!Page.IsPostback)
{
    // first call - assign values
    Textbox_Vendor.Text = vendor_name;
    ...
}
于 2013-06-21T08:13:25.690 に答える