0

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

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

4

3 回答 3

2

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

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

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;
    }
}

一些参考。
ASP.NET 网页中的跨页发布
ASP.NET 如何访问公共属性?
跨页面回发并再次保留来自源页面的数据
跨页面发布。在 Asp.net 中使用 PreviousPage 是一个好习惯吗?

于 2013-01-31T20:16:37.570 回答
0

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

于 2013-01-31T20:01:51.360 回答
0

有一种方法:

  1. 通过 Session 或 Query String 将选择传递到第二页
  2. 填充第一个下拉列表
  3. 选择合适的项目
  4. 对其余的下拉菜单重复 2-3

如果您正在寻找一种“可以做到”的神奇解决方案,我认为这是不可能的。

p.s. You might rethink your design (if this is an option) and have the grid on the first page; bind the grid when user selects a value from the last dropdown (make sure you have AutoPostback set to True on your last dropdown in order to trigger the final postback)

于 2013-01-31T20:23:56.447 回答