我正在使用VS 2013和Mysql,在我的一个页面中,我在这个视图中的gridview中选择了查询,每行都有一个按钮,这样如果我按一个行按钮,我就有一个新的窗口打开,其中包含gridview中的colum 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);
}
但我得到的结果都是空洞的。
答案 0 :(得分:0)
在按钮代码中,您同时拥有onclientclick和click事件。
在您点击点击活动我来宾时,您将打开不同的页面。请注意,首先执行客户端点击。所以新页面已经打开了。您的服务器端事件稍后执行。这就是为什么会议不能以新的形式提供。
<asp:Button ID="gridbutton" runat="server" Text="Plus de détails" OnClientClick="basicPopup();return false;" RowIndex='<%# Container.DisplayIndex %>' OnClick="button_click" />
在这种情况下,您必须将idProject作为查询字符串传递给新页面。