【问题标题】:Passing a dropdown list selected value to a detail view in a different page?将下拉列表选定值传递给不同页面中的详细视图?
【发布时间】:2015-04-15 14:16:16
【问题描述】:

我有一个包含员工信息的表格:电子邮件、姓名、地址等。在一个页面上有一个只有电子邮件(主键)的下拉列表,在第二页上我想为每个页面显示一个详细视图员工。到目前为止,我已将所选电子邮件分配给会话值。

    Dim SelectedEmail As String

     SelectedEmail = DropDownList1.SelectedValue
Session("selection") = SelectedEmail

我在第一页创建了一个按钮,可将我带到详细信息页面,反之亦然。我在检索电子邮件时遇到问题,到目前为止我只有这个:

Dim selectedemail As String = Session("selection")

【问题讨论】:

标签: asp.net .net vb.net visual-studio


【解决方案1】:

我来打一针。

看来您所做的只是将所选值放入局部变量中

Dim SelectedEmail As String
SelectedEmail = DropDownList1.SelectedValue

当我认为您的意图是将其放入会话变量中时

Session("selection") = DropDownList1.SelectedValue

这样你就可以在另一个页面上再次拿起它

Dim selectedEmail As String = Session("selection")

【讨论】:

    【解决方案2】:

    我试图重现该问题,但在我的情况下它工作正常。

    我在名为 default.aspx 的页面中添加了一个按钮和一个下拉列表

     <li class="three">
            <asp:Button ID="Button1" runat="server" Text="Button" />
            <asp:DropDownList ID="DropDownList1" runat="server">
            </asp:DropDownList>
     </li>
    

    在 Page.Load 事件处理程序中,我将三个 ListItem 放在 dropDownlist 中,在 Button.Click 事件处理程序中,我添加了一个会话属性,其中包含 DropDownList 中的 selectedValue

    这里是代码

     Public Class _Default
    Inherits Page
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        Dim item1 As ListItem = New ListItem("Test A", "test A", True)
        Dim item2 As ListItem = New ListItem("Test AB", "test AB", True)
        Dim item3 As ListItem = New ListItem("Test C", "test C", True)
    
    
        DropDownList1.Items.Add(item1)
        DropDownList1.Items.Add(item2)
        DropDownList1.Items.Add(item3)
    
    
    End Sub
    
    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Session("variable") = "Test value"
        Session("thevalue") = DropDownList1.SelectedValue
    
    
        Response.Redirect("default2.aspx")
    
    End Sub
    

    结束类

    当点击按钮时,我将 SelectedValue 提供给 Session("theValue") 并重定向到 default2.aspx。在 default2.aspx 中,我只是在检索 Session 属性后使用 Page.Load 事件在 Response 流上写入:

     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
        Dim myvariable As String = Session("variable")
        Response.Write("the found value is" + myvariable)
        Dim theValue As String = Session("thevalue")
        Response.Write("<Br/> from drop down =" + theValue)
    
    
    
    End Sub
    

    一切正常。

    例如,当我从 DropDownlist 中选择第二项时,我得到以下结果

    找到的值为测试值

    从下拉 =test AB

    所以问题出在其他地方。您可以检查并查看是否在 Page.Load 事件中正确处理 IsPostBack。如果您可以分享更多代码,那将有所帮助。

    【讨论】:

    • 感谢您的评论。但是我的下拉列表正在使用访问表中的值。我使用表中的一个字段(电子邮件)来填充下拉列表和详细视图的所有字段。所以我需要做的是将选定的电子邮件保存到会话变量(?)中,并以某种方式在第 2 页的详细视图中匹配它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    相关资源
    最近更新 更多