2014-08-28 6 views
1

Я переношу сайт sharepoint 2007 на 2013 год, мы выполнили все шаги и завершаем его, создав основные страницы 2013 года, чтобы заменить старые, но у нас возникла проблема с используемой обновленной панелью в одном из веб-сайтов.Обновление панели обновления для обновления

Новая главная страница была создана из файла minimum.master, сгенерированного из Sharepoint, который уже поставляется с 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, который имеет некоторые другие элементы управления и внутри. Кнопки, которые делают обратную передачу, находятся внутри сетки, которая, в свою очередь, находится внутри 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 обновить на конце щелкните событие, но безрезультатно, так как:

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

Любой идеи?

+0

возможно дубликат [Панель ASP.NET обновить Update] (http://stackoverflow.com/questions/260699/asp-net-refresh-update-panel) – Greg

+1

Да, я видел, что один, но, как я уже сказал. Я пытался заставить Update(), но не работал. Так что должен быть другой способ, или что-то не хватает на моем конце. –

+0

Любые ошибки javascript? когда вы пытаетесь сделать обновление? – Aristos

ответ

0

вы можете использовать JavaScript для выполнения UpdatePanel полного постбэка вроде как

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

т.е.

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

Смежные вопросы