2009-07-30 79 views
0

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

帮我解决这个问题。

感谢 鲁帕

+0

与其名称相反,主页实际上是页面的子控件。 – 2009-08-05 14:31:21

回答

2

由于无法直接查看母版页我假设你使用共同的母版页两页。我还假设这个母版页显示一个下拉列表和一个树形图网站地图。

基于此,我认为主要发生的是您的树视图呈现普通的旧html链接(即<a href='http://stackoverflow.com'>...)。点击这些按钮后,浏览器会执行第二个子页面的获取请求。默认情况下,第一个子页面的数据不会传递给第二个页面。

有多种方法可以改变这种行为。首先,您应将AutoPostBack属性设置为true,并在您的下拉列表中处理SelectedIndexChanged事件。在这种情况下,您可以保存下拉列表的值,以便稍后恢复。

保存此值的最简单方法可能是将其放入会话中。

Session["myvar"] = dropdown.SelectedIndex; 

你的母版页可以恢复该值时,孩子页面加载做一样的东西:

if (!IsPostBack && Session["myvar"] != null) 
    dropdown.SelectedIndex = (int)Session["myvar"]; 

另一种选择是将值添加到TreeView中每个URL的查询字符串。

+0

谢谢你,帮助我。 – ASD 2009-08-03 06:30:35