回发后刷新母版页上的控件

时间:2010-04-12 18:44:57

标签: asp.net updatepanel master-pages postback

我在这里要做的是以bulletlist的形式显示几条验证消息,所以我的主页面上有一个包含asp:bullet的Div。像这样:

                <div>
                <asp:BulletedList ID="blstValidationErrorMessage" runat="server" BulletStyle="Disc">
                </asp:BulletedList>
            </div>

当我然后从我的任何页面(在主contentPlaceHolder中)中单击“保存”按钮时,我创建了一个消息列表,并将此列表作为数据来表示如下:

                blstValidationErrorMessage.DataSource = validationMessageCollection;
                blstValidationErrorMessage.DataBind();   

保存按钮位于更新面板内:

  

asp:UpdatePanel runat =“server”ID =“UpdatePanel”ChildrenAsTriggers =“true”UpdateMode =“Conditional”&gt;

没有任何反应,我可以看到bulletlist的数据源包含X项,因为Save按钮位于更新面板内,并且此updatepanel外部的元素(例如母版页控件)不会刷新,因此必须出现问题。< / p>

所以我的问题是,如何在回发后刷新子弹列表?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您的按钮位于UpdatePanel内,则应将BulletedList控件放在UpdatePanel中。

您可以在MasterPage文件中放置围绕BulletedList的UpdatePanel。将“UpdateMode”设置为“Conditional”,然后调用UpdatePanel的Update方法仅在需要时刷新(例如,“保存按钮”单击)。

答案 1 :(得分:0)

“保存”按钮只会更新您放入的UpdatePanel的内容。以下是我的建议:

  1. 将SaveButton移到UpdatePanel之外。你把它放在哪里我会留给你。
  2. 将验证div放在另一个UpdatePanel中。称之为ValidationUpdatePanel
  3. 为两个更新面板添加SaveButton作为AsyncPostbackTrigger。由于您可能将每个UpdatePanel分成不同的控件/页面,因此您可能希望以编程方式在代码隐藏中执行此操作。