簡體   English   中英

強制更新面板刷新

[英]Force update panel to refresh

我正在將一個SharePoint 2007網站遷移到2013,我們已完成所有步驟,並通過構建2013母版頁替代舊版頁來完成最終定稿,但其中一個Web部件中使用的updatepanel遇到了問題。

新的母版頁是從Sharepoint生成的minimum.master創建的,該腳本已經隨ScriptManager一起提供。 我剛剛添加了所需的AsyncPostBackTimeout="1000" EnableHistory="true" ,如下所示:

<asp:ScriptManager ID="ScriptManager" runat="server" AsyncPostBackTimeout="1000" EnableHistory="true" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" />

然后在Webpart使用的用戶控件中,有一個更新面板,其中包含一個MultiView控件,該控件中還包含其他一些控件。 進行回發的按鈕在gridview內,而后者又在MultiView內。

UpdatePanel-> MultiView->視圖-> GridView->按鈕

<asp:UpdatePanel runat="server" ID="updatepanel1" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:MultiView ID="MultiView" runat="server">
            <asp:View ID="ViewAll" runat="server">
                <div class="firstColumn">
                    <asp:Panel ID="pnlP" runat="server">
                        <asp:GridView ID="gvP" runat="server" AutoGenerateColumns="False"
                            PageSize="10" Width="100%" GridLines="None" CssClass="defaultTable" CellPadding="0"
                            CellSpacing="1" OnDataBound="gvP_OnDataBound">
                            <AlternatingRowStyle CssClass="odd" />
                            <RowStyle CssClass="even" />
                            <Columns>

                                <asp:BoundField DataField="PNumber" HeaderStyle-Width="10%" />
                                <asp:TemplateField>
                                    <HeaderStyle Width="20%"></HeaderStyle>
                                    <ItemTemplate>
                                        <%# Server.HtmlDecode(Eval("IObject").ToString())%>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField>
                                    <HeaderStyle Width="10%"></HeaderStyle>
                                    <ItemTemplate>
                                        <asp:ImageButton ID="btnPDetails" runat="server" ImageUrl="/SiteCollectionImages/generic/generic.png"
                                            OnClick="btnDetails_Click" CommandName="PDetails" />
                                    </ItemTemplate>
                                </asp:TemplateField>
...

當我按細節時,它應該切換視圖。 它可以直接在服務器端執行所有操作,如果我刪除了更新面板,它將可以正常工作。

它在Sharepoint 2007上使用運行時創建的ScriptManager進行工作,但是它具有以下保護措施:

if (ScriptManager.GetCurrent(webpart.Page) == null)
            {
                ScriptManager scriptManager = new ScriptManager();
...

因此問題就不存在了(我已經檢查了調試情況)。

似乎更新面板現在不刷新。 我看不到任何錯誤服務器或客戶端...

我還試圖迫使updatepanel在click事件結束時進行更新,但無濟於事,如下所示:

protected void btnDetails_Click(object sender, ImageClickEventArgs e)
{
                NavigateFromGridView(sender);
                updatepanel1.Update();
}

有任何想法嗎?

您可以使用javascript來執行updatepanel完整回發嗎?

_doPostBack('<%= UpdatePanel1.ClientID%>','');

_doPostBack('<%= upPortfolio.ClientID%>','');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM