我在asp.net应用程序中使用母版页和子页面。我在母版页上有一个下拉列表和treeview(使用sitemapdatasource)。当我单击任何树视图节点时,页面将重定向到子页面。问题是如果在drop dwn列表中选择任何值并单击treeview节点,则应将选定的值分配给子页面中的ext框。这不起作用.. master page_load()在子page_load()之后执行,是不是因为这个?
帮助我解决这个问题。
由于 鲁帕
答案 0 :(得分:2)
由于您无法直接查看母版页,我假设您有两个页面使用公共母版页。我还假设这个母版页显示了一个下拉列表和一个树视图站点地图。
基于此,我认为最常发生的是你的树视图正在渲染普通的旧HTML链接(即<a href='http://stackoverflow.com'>...
)。单击这些时,浏览器会对第二个子页面执行get请求。默认情况下,第一个子页面中的数据不会传递给第二个子页面。
有多种方法可以改变这种行为。首先,您应该在下拉列表中将AutoPostBack
属性设置为true,并设置句柄SelectedIndexChanged
事件。在那种情况下,您可以保存下拉列表的值,以便以后可以恢复。
保存此值的最简单方法可能是将其放入会话中。
Session["myvar"] = dropdown.SelectedIndex;
您的母版页可以在加载子页面时通过执行以下操作来恢复此值:
if (!IsPostBack && Session["myvar"] != null)
dropdown.SelectedIndex = (int)Session["myvar"];
另一种选择是将值添加到树视图中每个URL的查询字符串。