簡體   English   中英

公共變量在按鈕單擊事件asp.net上失去價值

[英]Public variable loses value on button click event asp.net

我的asp.net gridview中有復選框,並且我有一種方法可以選擇多個復選框,效果很好。 之后,當用戶在文本框中輸入要更新為所選行的值時,我剛剛設置的值再次為空? 我包括了檢查多個項目的方法和更新按鈕。 為什么不保留這些值,我該如何解決?

公共變量

public string values = "";
public string salesorderNumber;

多個復選框

protected void SelectCheckBox_OnCheckedChanged(object sender, EventArgs e)
{
    CheckBox chk = sender as CheckBox;

    var rows = dropdeadGridView.Rows;
    int count = dropdeadGridView.Rows.Count;
    for (int i = 0; i < count; i++)
    {
        bool isChecked = ((CheckBox)rows[i].FindControl("SelectCheckBox")).Checked;
        if (isChecked)
        {
            values += rows[i].Cells[1].Text + ",";
            rows[i].BorderColor = System.Drawing.Color.Red;
            rows[i].ForeColor = System.Drawing.Color.Red;
            rows[i].BorderStyle = BorderStyle.Inset;
        }
    }
}

更新按鈕

protected void UpdateButton_Click(object sender, EventArgs e)
{
    App_Code.GridData gridData = new App_Code.GridData();

        if (loadnumTextBox.Text == "" && RadDateTimePicker1.SelectedDate != null)
        {
            SqlConnection dbConn = App_Code.DBHelper.getConnection();
            try
            {
                using (dbConn)
                {
                    SqlCommand addJob = new SqlCommand(@"UPDATE ORDER_DETAIL SET DropDeadTime = @DropDeadTime WHERE SALES_ORDER_NUMBER = @SalesOrderNumber", dbConn);
                    //addJob.Parameters.AddWithValue("@SalesOrderNumber", Convert.ToInt32(IDTextBox.Text));
                    addJob.Parameters.AddWithValue("@SalesOrderNumber", values);
                    addJob.Parameters.AddWithValue("@DropDeadTime", RadDateTimePicker1.SelectedDate);
                    dbConn.Open();
                    addJob.ExecuteNonQuery();
                }
                NotificationLabel.Text = "Updated!";
                NotificationLabel.Visible = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }

            BindList();
        }

        if (loadnumTextBox.Text != "" && RadDateTimePicker1.SelectedDate == null)
        {
            SqlConnection dbConn = App_Code.DBHelper.getConnection();
            try
            {
                using (dbConn)
                {
                    SqlCommand addJob = new SqlCommand(@"UPDATE ORDER_DETAIL SET LOAD_NUMBER = @LOAD_NUMBER WHERE SALES_ORDER_NUMBER = @SalesOrderNumber", dbConn);
                    addJob.Parameters.AddWithValue("@SalesOrderNumber", salesorderNumber);
                    addJob.Parameters.AddWithValue("@LOAD_NUMBER", loadnumTextBox.Text);
                    dbConn.Open();
                    addJob.ExecuteNonQuery();
                }
                NotificationLabel.Text = "Updated!";
                NotificationLabel.Visible = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }

            BindList();
        }

如果要在請求之間使用它,則必須使用會話狀態,視圖狀態,cookie或HTML表單/請求值之類的東西。

ASP.NET是無狀態的,這意味着它不會保持從回發到回發的狀態。

如果您想實現自己的目標,則需要一個靜態的。

暫無
暫無

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

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