使用母版页来制作一个具有左侧动态导航树的站点,关于子页面优化的问题

lethe30003000 2009-04-18 12:44:16
我在主页面Main.Master里直接定义了一个TreeView,并根据每个用户不同的权限在主页面的Page_Load方法里面手动生成了整个导航树。
Main.Master的主要布局是:

<table>
<tr>
<td>
<!-- 左侧的导航树 -->
<asp:TreeView ID="TV" runat="server"/>
</td>
<td>
<asp:contentplaceholder id="MainContent" runat="server">
<!-- Page-specific content will go here... -->
</asp:contentplaceholder>
</td>
</tr>
</table>

点击导航树的每个结点,就会打开相应的子页面。子页面的内容显示在"MainContent"的内容里,主要使用的是<table>...

每个子页面都继承自这个Main.Master,每次打开一个子页面的时候,整个页面都会刷新,并且重新生成导航树。
我想请教一下怎么优化一下结构,减少刷新以及不必要的数据计算,谢谢
...全文
560 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kdkler 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zzxap 的回复:]
4.支持aJax,支持文件格式:xml/html/script/json/jsonp

$("#feeds").load("feeds.html");//相应区域导入静态页内容
$("#feeds").load("feeds.php", {limit: 25}, function(){alert("The last 25 entries in the feed have been loade……
[/Quote]
在页面直接这样写就可以了?还有那个js文件从哪里下载呢?
kdkler 2011-08-15
  • 打赏
  • 举报
回复
不用框架啊,不用框架,唉,无语了……
fgh0302 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lethe30003000 的回复:]
因为之前用iframe,将整个页面分为Top,Middle,Bottom三个frame
在Top里面我定义了一个logout按钮,点击后将重新定向到登陆界面(在OnClick()事件里面直接Response.Redirect实现)
用iframe实现的时候,点击logout按钮之后只有Top frame的内容变为登陆页面,而Middle与Bottom
的内容都保持原先的样子。
这个怎么解决比较好?
[/Quote]

target =_top or _blank
tianzhiguo 2009-04-19
  • 打赏
  • 举报
回复
建议用框架结构。。。
IFrame结构。。。
major 2009-04-19
  • 打赏
  • 举报
回复
用ifram框架来做嘛,实际上用框架已经基本实现了Ajax的部分功能。
kfps8kfps8 2009-04-18
  • 打赏
  • 举报
回复
可以用框架结构,也可以用ajax
xiangzaopao 2009-04-18
  • 打赏
  • 举报
回复
建议用框架结构
yagebu1983 2009-04-18
  • 打赏
  • 举报
回复
建议用框架结构吗。。。
IFrame结构。。。
lethe30003000 2009-04-18
  • 打赏
  • 举报
回复
因为设计的时候每点击一个结点,实际打开的都是另外一个新的页面(继承自同样一个主页面)
所以使用UpdatePanel,可以在同一个子页面中进行操作的时候,只刷新Content部分不刷新导航树部分,但是在转到另外一个子页面的时候TreeView同样会重复地构造一次。
我将TreeView对象保存在Session中,这样设计会不会有潜在的安全或者逻辑问题?
谢谢
lethe30003000 2009-04-18
  • 打赏
  • 举报
回复
因为之前用iframe,将整个页面分为Top,Middle,Bottom三个frame
在Top里面我定义了一个logout按钮,点击后将重新定向到登陆界面(在OnClick()事件里面直接Response.Redirect实现)
用iframe实现的时候,点击logout按钮之后只有Top frame的内容变为登陆页面,而Middle与Bottom
的内容都保持原先的样子。
这个怎么解决比较好?
unicode 2009-04-18
  • 打赏
  • 举报
回复
用iframe吧
sxmonsy 2009-04-18
  • 打赏
  • 举报
回复
用AJAX.net 自带的UpdatePanel就可以.
cat_hsfz 2009-04-18
  • 打赏
  • 举报
回复
用UpdatePanel。

除此之外,就算你不用MasterPage,就算你在同一个Page内放一个TreeView,也是每次PostBack都重新构造TreeView的,这是必须承担的开销。
zzxap 2009-04-18
  • 打赏
  • 举报
回复
下载引用jquery.js
zzxap 2009-04-18
  • 打赏
  • 举报
回复
4.支持aJax,支持文件格式:xml/html/script/json/jsonp

$("#feeds").load("feeds.html");//相应区域导入静态页内容
$("#feeds").load("feeds.php", {limit: 25}, function(){alert("The last 25 entries in the feed have been loaded");});//导入动态内容
spark_wu 2009-04-18
  • 打赏
  • 举报
回复
可以使用框架,但是会对网站优化有一点影响
蓝海D鱼 2009-04-18
  • 打赏
  • 举报
回复
可以考虑用 frame
teerhu 2009-04-18
  • 打赏
  • 举报
回复
用ajax可以实现局部刷新

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧