【发布时间】:2019-02-23 08:36:01
【问题描述】:
我有一个带有Rowcommand 事件的gridview,让我获取列ActivityID 单元格值 并将其放入名为ActivityIDString 的private string强>。
private string ActivityIDString; // To be used in btUpdate
protected void gwActivity_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Page") return;
GridViewRow row = ((e.CommandSource as Control).NamingContainer as GridViewRow);
string ActivityID = row.Cells[1].Text;
ActivityIDString = ActivityID;
}
这一切都在选择行时,但是当我按“BTUPDATE”按钮时,ActivityIdstring将变为NULL。
protected void btUpdate_Click(object sender, EventArgs e)
{
string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmd = new SqlCommand("sp_tblActivityUpdate", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ActivityID", ActivityIDString);
con.Open();
cmd.ExecuteNonQuery();
BindGridviewActivity();
}
}
我了解该问题以及它为何变为 NULL,但我不知道如何解决此问题以及在何处使用 ViewState。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["ActivityIDStringText"] = "ActivityIDString"; // <-- SHOULD I CREATE THIS?????
}
}
【问题讨论】:
-
你把你的按钮绑定到gridview里面了吗?
-
不,按钮在gridview之外
-
好的,那么您可以在您的方法中使用 viewState 请查看答案。
标签: asp.net string button viewstate rowcommand