![](/img/trans.png)
[英]Update Panel update() method not working, how to force refresh of page within function
[英]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.