如何使用session将id从一个aspx页面传输到另一个aspx页面

时间:2014-07-23 06:48:11

标签: asp.net vb.net

我有两个aspx页面。第一个包含所有船只的gridview列表,另一个包含许可证的申请表。一旦我在gridview列表中选择一行, 许可证申请按钮将会显示,点击此按钮后,会重定向到第二页,即申请表格。问题是我必须从gridview列表(第一个aspx页面)上的选定行获取容器的id并将其传输到第二个aspx页面。应将id与许可申请表中的其他数据一起插入许可申请表中。

2 个答案:

答案 0 :(得分:0)

听起来这是你的情况,粗略地说:你有aspxAB。您的用户在A上输入B所需的内容以呈现其他内容。对我来说,你在B上呈现一个表是无关紧要的;如果您可以简单地将从A输入的值回显到B,您就会知道该怎么做。所以我将忽略数据表的内容。

可以使用会话变量将此值从A传输到B,但您可能不应该这样做。有一些很好的理由不这样做;对于初学者来说,会话​​变量会持久存储在内存中,因此需要进行管理。

如果您坚持使用会话变量,您可以通过将文本框的值存储到您选择的会话变量中来处理A上的提交事件:

    Public Sub Submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Session("my_session_variable_name") = myTextBox.Text

    End Sub

然后在B中,在适当的生命周期事件中(例如,在加载时),您将读取会话变量并生成表或您要完成的任何事情:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If Session("my_session_variable_name") <> "" Then
            id = Session("my_session_variable_name")
        End If

但是我会强烈反对你这样做。相反,请尝试将B页面置于查询字符串参数或POST ed正文成员中,并使用Request.QueryString[]Request.Form[]进行阅读。

答案 1 :(得分:0)

您应该使用Button的CommandName和CommandArgument属性。

<asp:Button runat="server" ID="btn" CommandName="Permit" CommandArgument="6" />

但是CommandArgument必须绑定gridview的OnRowDataBound事件。因此,当您单击时,将检查命令名称并获取命令参数值,并将其传递给许可表单。