动态生成的控件,帮忙看看,在线等(顶一下也给分感谢!请多帮忙哦)

轻舟已过万重山 2004-08-03 09:44:59
我有个menu,是个控件,这个menu的调入是通过一个公共方法去读取指定的一个menu.xml文件。方法很简单,其中关键的一段如下:
Public void LoadMenu(Page page,Menu menu)
{
XmlTextReader xtr = new XmlTextReader(page.MapPath("menu.xml"));
menu.LoadTree(xtr, true);
xtr.Close();
}
现在我的问题:
1。我在每个页面去使用menu的时候都需要去调用这个LoadMenu方法去读取menu.xml文件,并且这个方法放在Page_Load里面还不能放在!PostBack里面,感觉非常笨。


我处理过:
A 用iframe把这个menu做好,在每页去头部去包含这个iframe,不行,因为这个当iframe的高度和menu初级菜单的高度一样的时候,同原来的界面融合很好,但现在的子菜单将不在出现。

B 做成User Control,不行,因为这个控件需要去读xml动态生成,所以如果做成控件来用则提示错误:
“ A control cannot modify its parents' control collections.”

请高人指点迷津,如果调入一次后给所有的页面使用??
...全文
144 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是不是我的需求每说明白?这些方法其实都很好,但没有解决我的那个问题啊
brightheroes 2004-08-03
  • 打赏
  • 举报
回复
如1楼的方法
还有一个方法就是
整个儿项目就一个Page
其他的都是UserControl
动态加载
  • 打赏
  • 举报
回复
其实我的要求很简单,不要每个页面,每次PostBack都去读Xml来生成菜单,然后调Css来控制它,我觉得这样很笨,一样的动作,做了很多很多次!帮帮忙了。
  • 打赏
  • 举报
回复
TO: goody9807() ( )
B 做成User Control,不行,因为这个控件需要去读xml动态生成,所以如果做成控件来用则提示错误:
“ A control cannot modify its parents' control collections.”

-------------------

做成User Control 可以的 我现在用的是AspnetMenu1.1 就做成User Control
只要把menu.xml 放到根目录即可
___________________________________________________________

我确实是放在根目录下的啊,可能我们用的控件类似,但不一样。
xueqs 2004-08-03
  • 打赏
  • 举报
回复
mark
goody9807 2004-08-03
  • 打赏
  • 举报
回复
A 用iframe把这个menu做好,在每页去头部去包含这个iframe,不行,因为这个当iframe的高度和menu初级菜单的高度一样的时候,同原来的界面融合很好,但现在的子菜单将不在出现。



http://www.blueidea.com/tech/web/2003/1474.asp

B 做成User Control,不行,因为这个控件需要去读xml动态生成,所以如果做成控件来用则提示错误:
“ A control cannot modify its parents' control collections.”

-------------------

做成User Control 可以的 我现在用的是AspnetMenu1.1 就做成User Control
只要把menu.xml 放到根目录即可
  • 打赏
  • 举报
回复
再申明一下:

做个所有页面的基类,它继承于System.Web.UI.Page,所有页面再继承于它,把LoadMenu方法写到这个基类里面。
______________________________________________________________
这个办法也是调用一个Class的公用方法,只是用继承来做而已,这样还是要反复的去读调用LoadMenu方法,反复的去读Xml。
这样到最后会导致如果客户端的用户计算机响应不快,偶尔会出现问题,不能正常显示菜单。
继续啊,多谢先!
wzqinyfwu 2004-08-03
  • 打赏
  • 举报
回复
不错,学习,ding
怕那没啦 2004-08-03
  • 打赏
  • 举报
回复
.Net的继承还是不错滴
  • 打赏
  • 举报
回复
做个所有页面的基类,它继承于System.Web.UI.Page,所有页面再继承于它,把LoadMenu方法写到这个基类里面。
---------------------------------------------------------------------------------
请问这样就不需要重复去读取Xml来显示这个menu了吗?我对此有点迷惑。这样不只是把LoadMenu方法成员继承过来了吗?到时候你还是需要去调用LoadMenu吧,有做同样的动作了?
veryhappy 2004-08-03
  • 打赏
  • 举报
回复
楼上的正解
gshope 2004-08-03
  • 打赏
  • 举报
回复
做个所有页面的基类,它继承于System.Web.UI.Page,所有页面再继承于它,把LoadMenu方法写到这个基类里面。
  • 打赏
  • 举报
回复
是啊,可用iframe不可以的啊,会把这个菜单的子菜单给隐藏了。
用继承只是改变了执行方式而已。
BillTuan 2004-08-03
  • 打赏
  • 举报
回复
做个所有页面的基类,它继承于System.Web.UI.Page,所有页面再继承于它,把LoadMenu方法写到这个基类里面。
______________________________________________________________
这个办法也是调用一个Class的公用方法,只是用继承来做而已,这样还是要反复的去读调用LoadMenu方法,反复的去读Xml。
这样到最后会导致如果客户端的用户计算机响应不快,偶尔会出现问题,不能正常显示菜单。
继续啊,多谢先!
-------------------------------------------------------------
楼主的意思还是想做成一个页面或Iframe呀!
我也没什么好办法,好象只有用继承呀
bccu 2004-08-03
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
没有得到答案,怎么给分?

62,073

社区成员

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

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

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

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