[英]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.