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