Asp.net 会话未显示
Asp.net session not showing
我在会话中存储 gridview 行的主键值并在另一个网页上显示它我正在尝试以下代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Migrate")
{
int _rowindex = Convert.ToInt32(e.CommandArgument);
GridViewRow _selectedrow = GridView1.Rows[_rowindex];
TableCell _firstcell = _selectedrow.Cells[0];
Session["authId"] = _firstcell.Text + "";
Response.Redirect("WebForm2.aspx");
}
}
通常代码工作正常,但 _firstcell
在将我的页面重定向到 webform2 后 运行 值未存储在会话中 运行 其他情况。我正在使用以下代码 onpageload 的 webform2:
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Session["authId"].ToString()))
Response.Write(Session["authId"].ToString());
else
{
Response.Write("Empty Session");
}
}
通过更改以下代码:
int _rowindex = Convert.ToInt32(e.CommandArgument);
GridViewRow _selectedrow = GridView1.Rows[_rowindex];
TableCell _firstcell = _selectedrow.Cells[0];
Session["authId"] = _firstcell.Text + "";
Response.Redirect("WebForm2.aspx");
进入以下代码:
int _rowindex = Convert.ToInt32(e.CommandArgument);
//we used datakey here for get primary key of specific row
var id = Convert.ToInt32(GridView1.DataKeys[_rowindex].Value);
Session["authId"] = id;
Response.Redirect("WebForm2.aspx");
我找到了解决方案。
我在会话中存储 gridview 行的主键值并在另一个网页上显示它我正在尝试以下代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Migrate")
{
int _rowindex = Convert.ToInt32(e.CommandArgument);
GridViewRow _selectedrow = GridView1.Rows[_rowindex];
TableCell _firstcell = _selectedrow.Cells[0];
Session["authId"] = _firstcell.Text + "";
Response.Redirect("WebForm2.aspx");
}
}
通常代码工作正常,但 _firstcell
在将我的页面重定向到 webform2 后 运行 值未存储在会话中 运行 其他情况。我正在使用以下代码 onpageload 的 webform2:
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Session["authId"].ToString()))
Response.Write(Session["authId"].ToString());
else
{
Response.Write("Empty Session");
}
}
通过更改以下代码:
int _rowindex = Convert.ToInt32(e.CommandArgument);
GridViewRow _selectedrow = GridView1.Rows[_rowindex];
TableCell _firstcell = _selectedrow.Cells[0];
Session["authId"] = _firstcell.Text + "";
Response.Redirect("WebForm2.aspx");
进入以下代码:
int _rowindex = Convert.ToInt32(e.CommandArgument);
//we used datakey here for get primary key of specific row
var id = Convert.ToInt32(GridView1.DataKeys[_rowindex].Value);
Session["authId"] = id;
Response.Redirect("WebForm2.aspx");
我找到了解决方案。