【发布时间】:2026-01-22 07:20:07
【问题描述】:
我正在使用 VS 2013 和 Mysql,在我的一个页面中,我将选择查询放在此视图的网格视图中,并且我为每一行都有一个按钮,这样如果我按下一个行按钮,我就会打开一个新窗口具有来自 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);
}
但我得到的只是一个空结果。
【问题讨论】:
-
不确定问题出在哪里,但您确实应该使用查询字符串在页面之间传递数据。在这种情况下,会话状态不是要走的路。
-
“返回false”不是吗?在 OnClientClick 中阻止请求被发送到服务器?
-
我不这么认为,因为我已经在其他页面中使用了相同的东西,并且变量会话从一个页面传递到另一个页面。
标签: c# mysql asp.net visual-studio