我有2页,都有3个类似的DropDownLists。在选择第二个之前需要填充第一个DropDownList,在第三个之前需要填充第二个DropDownList(然后填充网格视图)。
通常,用户将在一个页面上查看数据,单击按钮,然后在下一页上查看数据(通常使用相同的DropDownList选项)。有没有办法让下拉列表预先填充旧选项?
答案 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)
有一种方法:
如果你正在寻找一种“做到这一点”的神奇解决方案,我认为这是不可能的。
P.S。您可以重新考虑您的设计(如果这是一个选项)并在第一页上有网格;当用户从上一个下拉列表中选择一个值时绑定网格(确保在最后一个下拉列表中将AutoPostback
设置为True
以触发最终回发)