会话在c#页面之间没有传递
本文关键字:之间 会话 | 更新日期: 2023-09-27 18:11:34
我正在使用VS 2013和Mysql,在我的一个页面中,我将选择查询放在这个视图中的gridview中,我对每一行都有一个按钮,这样,如果我按下行按钮,我就会有一个新的窗口打开,从gridview中获得列Id(这是第一列)。
网格视图按钮代码:
<Columns>
<asp:TemplateField ><ItemTemplate><asp:Button ID="gridbutton" runat="server" Text="Plus de détails" OnClientClick="basicPopup();return false;" RowIndex='<%# Container.DisplayIndex %>' OnClick="button_click" /></ItemTemplate></asp:TemplateField>
</Columns>
button_click方法代码:
protected void button_click(object sender, EventArgs e)
{
Button gridbutton = sender as Button;
int rowIndex = Convert.ToInt32(gridbutton.Attributes["RowIndex"]);
string n = "l'index" + rowIndex + "";
Session["idProjet"] = GridView1.Rows[rowIndex].Cells[2].Text;
//string idProjet = Convert.ToString(Session["idProjet"]);
// Alert.Show(idProjet);
}
我只是用了最后两行来确保我得到了值,而且我得到了正确的值。这是第二页的代码我想在这里获取会话值:
protected void Page_Load(object sender, EventArgs e)
{
string idProjet = Convert.ToString(Session["idProjet"]);
Alert.Show(idProjet);
}
但是我得到的是一个空的结果
在你的按钮代码你有onclientclick和点击事件。
在你点击事件我想你正在打开不同的页面。注意,首先执行客户端单击。新的一页已经打开了。服务器端事件稍后执行。这就是为什么会话在新表单中不可用。
<asp:Button ID="gridbutton" runat="server" Text="Plus de détails" OnClientClick="basicPopup();return false;" RowIndex='<%# Container.DisplayIndex %>' OnClick="button_click" />
在这种情况下,您必须将idProject作为查询字符串传递给新页面。