UpdatePanel 中未更新的内容(在 Web 部件中)

Posted

技术标签:

【中文标题】UpdatePanel 中未更新的内容(在 Web 部件中)【英文标题】:content not updated in UpdatePanel (in a Web Part) 【发布时间】:2012-02-22 12:24:17 【问题描述】:

当用户在 DropDownList 控件中选择一个元素时,我必须更新我的 Web 部件 (SharePoint2010) 中的 asp 控件(标签和表格)。我在 DropDownList 中添加了一个 EventHandler,用于编辑表格的标签和单元格。

我正在使用 asp:UpdatePanel 和 asp:AsyncPostBackTrigger 触发器。

在VS2010调试的时候,可以看到调用了服务端方法,更新了标签和表格单元格。

但当返回 AJAX 调用时,Web 部件中的控件不会更新。当我在 FireBug 控制台中监控 HTTP 响应时,我可以看到服务器没有返回更新后的控件值。

这是ascx的代码:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" 
    OnSelectedIndexChanged="listBoxSelectedIndexChanged">
</asp:DropDownList>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Label ID="testlabel" runat="server">test</asp:Label>
        <asp:Table ID="Table1" runat="server" Height="100px" Width="253px" 
            CellPadding="1" CellSpacing="1" CssClass="marcheFonds">
        </asp:Table>

    </ContentTemplate>

    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>

而在服务器端方法listBoxSelectedIndexChanged(部分类ListeUserControl:UserControl)中,我正在这样做:

Table1.Rows[i].Cells[j].Text = rate.month1;
Table1.Rows[i].Cells[j].Text = rate.month2;
Table1.Rows[i].Cells[j].Text = rate.month3;
Table1.Rows[i].Cells[j].Text = rate.month6;
Table1.Rows[i].Cells[j].Text = rate.month12;

testlabel.Text = rate.code;

我没有使用gridview,因为表格的结构很复杂。

有什么想法吗?

【问题讨论】:

【参考方案1】:

请查看here 用户 cmets。回发行为问题在 SharePoint 2010 中是相同的。尝试实现 EnsurePanelFix()-方法。

【讨论】:

以上是关于UpdatePanel 中未更新的内容(在 Web 部件中)的主要内容,如果未能解决你的问题,请参考以下文章

找不到 ID 为“xxx”的 UpdatePanel。如果它是动态更新的,那么它必须在另一个 UpdatePanel 中

找不到ID为'xxx'的UpdatePanel。如果它是动态更新的,那么它必须在另一个UpdatePanel内

在 UpdatePanel 更新后注册动态 javascript

在中继器UpdatePanel问题内单击按钮

使用 JavaScript 或 jQuery 手动更新 UpdatePanel

当 UpdatePanel 在计时器上更新自身时,css 样式会丢失