主页面控件正在重置

时间:2009-07-30 04:59:46

标签: c# asp.net master-pages

我在asp.net应用程序中使用母版页和子页面。我在母版页上有一个下拉列表和treeview(使用sitemapdatasource)。当我单击任何树视图节点时,页面将重定向到子页面。问题是如果在drop dwn列表中选择任何值并单击treeview节点,则应将选定的值分配给子页面中的ext框。这不起作用.. master page_load()在子page_load()之后执行,是不是因为这个?

帮助我解决这个问题。

由于 鲁帕

1 个答案:

答案 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的查询字符串。