会话未在页面之间传递c#

时间:2014-07-04 18:49:57

标签: c# mysql asp.net visual-studio

我正在使用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);

        }

但我得到的结果都是空洞的。

1 个答案:

答案 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作为查询字符串传递给新页面。