将DropDownList值从一个页面传输到下一个页面

时间:2013-01-31 19:51:05

标签: c# asp.net visual-studio

我有2页,都有3个类似的DropDownLists。在选择第二个之前需要填充第一个DropDownList,在第三个之前需要填充第二个DropDownList(然后填充网格视图)。

通常,用户将在一个页面上查看数据,单击按钮,然后在下一页上查看数据(通常使用相同的DropDownList选项)。有没有办法让下拉列表预先填充旧选项?

3 个答案:

答案 0 :(得分:2)

您可以使用asp.net为您提供的PreviousPage参数将值从一个页面传递到另一个页面。一个小例子:

您将提交按钮上的第二页设置为:

PostBackUrl="SecondPage.aspx"

在SecondPage.aspx上,您声明可以获取信息的位置

<%@ PreviousPageType VirtualPath="~/FirstPage.aspx" %>

你得到他们......

if (Page.PreviousPage != null)
{
    if(Page.PreviousPage.IsCrossPagePostBack == true)
    {
        // and get the controls of the previous page as
        var SomeVariable = PreviousPage.DropDownlListId.SelectedValue;
    }
}

一些参考。
Cross-Page Posting in ASP.NET Web Pages
ASP.NET how to access public properties?
Cross-page postbacks and back again retaining data from source page
Cross-page posting. Is it a good pratice to use PreviousPage in Asp.net?

答案 1 :(得分:0)

如果您有用户单击的按钮发布到第二页的表单,则第二页可以查找DDL的值并在页面加载时设置它们。

答案 2 :(得分:0)

有一种方法:

  1. 通过会话或查询字符串
  2. 将选择传递到第二页
  3. 填充第一个下拉列表
  4. 选择合适的项目
  5. 其余下拉列表重复2-3次
  6. 如果你正在寻找一种“做到这一点”的神奇解决方案,我认为这是不可能的。

    P.S。您可以重新考虑您的设计(如果这是一个选项)并在第一页上有网格;当用户从上一个下拉列表中选择一个值时绑定网格(确保在最后一个下拉列表中将AutoPostback设置为True以触发最终回发)