问题: 我加载基于在父页RadTabstrip控件中选定的选项卡的几个用户控件之一。我捕获了选定的选项卡,并将其分配给OnTabClick事件中的Session变量,以便在每个用户控件中使用,以确定是否需要呈现该特定控件。你可以强制页面渲染后加载
原因是因为每个用户控件都会查询一个数据库来渲染不同的图表,而且我不希望每次回发到服务器都会发生不必要的处理。我想补充一点,每个用户控件在其标记中都有几个标签,它们只能根据从数据库中检索到的内容获取在运行时期间分配的文本值。
当我加载主页面时,每个用户控件都会检查选中的选项卡变量,并且在该范围内一切正常。 (索引0的第一个选项卡没有图表)
问题是当我选择一个具有用户控件的选项卡时,从数据库中获取数据并构建图表的适当代码正常工作,但TEXT值标记中的标签控件不会显示在页面上,尽管TEXT值是在数据被重新获取的同时在代码隐藏中设置的。
如果我执行相同页面的回发,将显示Label控件的TEXT值。
我相信这是因为其中包括标记的渲染页面生命周期的第一个阶段是不触发用户控件上的初始加载,但在随后的重新加载或页面的刷新会被解雇。
有没有办法解决这个问题?点击数据库后,我正在调用Render事件,但我可能会基于我的想法离开。
任何人都可以提供一些建议或潜在的解决方案?
感谢
它绝对听起来好像你的用户控制数据被映射到用户控制标签到晚了。何时以及如何创建用户控件?这听起来像你在OnTabClick方法中这样做,这应该不是问题,因为用户事件在Page_PreRender()之前触发,这是您发送给客户端之前修改页面的最后机会事件。 – 2012-03-07 15:51:40
UserControl是静态的,并且已经在网站中创建。层次结构是:主页面,子主页面,ASPX页面,然后是在ASPX页面中使用标签名称和前缀注册并在div标签中添加到该页面的用户控件。当站点加载ASPX页面时,加载并为每个UserControl呈现标记。如果我删除了条件检查并仅允许构建所有控件,则问题不会发生;但是,我有其他问题不断查询每个UserControl在回发数据库。表现的杀手。 – Mark 2012-03-07 16:18:59