我有 2 页,都有 3 个类似的 DropDownLists。第一个 DropDownList 需要在选择第二个之前填充,第二个在第三个之前填充(然后填充一个 gridview)。
通常,用户将在一个页面上查看数据,单击一个按钮,然后在下一页上查看数据(通常使用相同的 DropDownList 选择)。有没有办法让下拉列表预先填充他们的旧选择?
我有 2 页,都有 3 个类似的 DropDownLists。第一个 DropDownList 需要在选择第二个之前填充,第二个在第三个之前填充(然后填充一个 gridview)。
通常,用户将在一个页面上查看数据,单击一个按钮,然后在下一页上查看数据(通常使用相同的 DropDownList 选择)。有没有办法让下拉列表预先填充他们的旧选择?
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 是一个好习惯吗?
如果您有用户单击的按钮发布到第二页的表单,则第二页可以查找 DDL 的值并在页面加载时设置它们。
有一种方法:
如果您正在寻找一种“可以做到”的神奇解决方案,我认为这是不可能的。
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)