我建立了一个包含母版页和许多内容页面的ASP.net网站。我最近在母版页上添加了一个新的菜单控件,这样我就可以动态地建立一个菜单(基于用户访问级别),从后面的代码和所有工作,直到我做回发,菜单完全消失。
我目前在(!Page.IsPostback)中有菜单构建功能,因为发生回发时出现以下错误。
“名称不能以'2'字符开头,十六进制值0x32。第1行,第1538位。”
我要做的是找到一种方法在发生回发后在主页面上保留新的动态构建控件(或解决错误,无论哪种方式我都会很高兴。)
任何帮助都将不胜感激。
答案 0 :(得分:1)
您必须始终初始化(并添加到控制树)控件 - 而不仅仅是有选择地基于回发状态。因此,将dyn-init代码放在page-init(OnInit)中,始终执行,它应该可以工作。
这种方法相当于在aspx / ascx文件中定义内联的asp.net控件 - 所有标记在Page的OnInit期间被解释,这就是这些控件被添加到页面控件树的时候。
答案 1 :(得分:0)
我想关闭我未解决的问题。
经过长时间的调查和与菜单控制供应商的对话,我能够找到并证明原始控件中的错误。显然,我在构建菜单时提供的一些数据中的前导数字(在本例中为2)导致控件播放。我不知道原因是什么或它失败的原因,但供应商已经确定控制并交付了新版本的代码,现在一切都运行良好。
感谢那些想过这个的人。