【问题标题】:ASP .Net Passing value from gridview using Session State (VB)ASP .Net 使用会话状态 (VB) 从 gridview 传递值
【发布时间】:2023-03-29 21:25:01
【问题描述】:

我是学习 .net 的经典 asp 程序员。这是我的问题:

我有一个包含以下列的网格视图:Pkey、名称、地址。假设我想在 Pkey 字段上有一个超链接,以将该值传递到另一个页面。我已经能够使用查询字符串来实现它。我想使用会话状态来做到这一点。我真的不知道该怎么做,因为 pkey 在 gridview 中。任何帮助,将不胜感激。

【问题讨论】:

  • 您为什么要这样做?设置会话变量将需要回发,然后重定向到另一个页面,其中查询字符串参数直接到达另一个页面,而不需要往返服务器。如果用户有多个窗口/选项卡打开到包含 gridview 的同一页面,则超链接中的查询字符串也将正常工作;如果选项卡 1 将会话变量设置为 X,选项卡 2 将会话变量设置为 Y,应用程序不会混淆吗?
  • 由于我还在学习.net,我只是认为会话状态是将变量传递到另一个页面而不是使用查询字符串的新方法。那么这仍然是传递变量的首选方法吗?
  • 我更喜欢 QueryString,但@pjabbott:不会有 额外 往返,只是稍微长一点。这可能是一种有用的技术。

标签: asp.net .net


【解决方案1】:

试试这个代码: 第一页

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { var firstCell = e.Row.Cells[0]; firstCell.Controls.Clear(); firstCell.Controls.Add(new HyperLink { NavigateUrl = "secondpage?pkey = " + firstCell.Text, Text = firstCell.Text, Target = "_blank" }); 会话["PKEY"] = firstCell.Text; } } 第二页:

    string pkey = Convert.ToString(Session["PKEY"]);
    label1.Text = pkey;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多