我正在asp.net应用程序中使用母版页和子页。我在主页上有一个下拉列表和树视图(使用sitemapdatasource)。当我单击任何树视图节点时,页面将重定向到子页面。
问题是,如果在下拉列表dwn列表中选择任何值,然后单击treeview节点,则所选值应分配给子页面的ext框。这是行不通的。主page_load()在子page_load()之后执行,是因为这个吗?
由于您不能直接查看母版页,所以我假设您有两个使用通用母版页的页面。我还假设此主页显示一个下拉列表和一个树状视图站点地图。
基于此,我认为最主要的是您的树形视图正在呈现普通的旧html链接(即<a href='http://stackoverflow.com'>...
)。单击这些后,浏览器将对第二个子页面执行获取请求。默认情况下,第一个子页面的数据不会传递到第二个子页面。
有多种更改此行为的方法。首先,应将AutoPostBack
属性设置为true,并在下拉列表上设置handle SelectedIndexChanged
事件。在这种情况下,您可以保存下拉菜单的值,以便以后可以恢复。
保存此值的最简单方法可能是将其放入会话中。
Session["myvar"] = dropdown.SelectedIndex;
您的母版页可以在子页加载时通过执行以下操作来恢复此值:
if (!IsPostBack && Session["myvar"] != null)
dropdown.SelectedIndex = (int)Session["myvar"];
另一个选择是将值添加到树视图中每个URL的查询字符串中。