SharePoint 2010: Problemi con un web part provider di connessione che utilizza un UpdatePanel

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/7128

  •  16-10-2019
  •  | 
  •  

Domanda

I potrebbe andare su questo in tutto il modo sbagliato, ma questo è quello che sto facendo:

Ho 2 parti Web personalizzate: un calendario aziendale e una lista appuntamento. Entrambi sono webparts visivi ed entrambi contengono un controllo UpdatePanel. Il calendario prevede la data e l'elenco appuntamento consuma una data. Quando la data selezionata nella parte del calendario cambia viene notificato l'elenco appuntamento. L'UpdatePanel ha lo scopo di evitare che l'intera pagina venga aggiornata.

Questo funziona bene quando la pagina viene caricata. Tuttavia, quando viene cambiata la data del calendario, un postback è sollevata. La parte appuntamento viene aggiornata ma il collegamento provider è nullo. (Vale a dire il collegamento non è esplicitamente reinizializzata) Pertanto non è possibile recuperare la data dal fornitore (calendario).

Ho cercato di salvare il provider nel ViewState ma ottengo un errore che dice che la parte di calendario non è contrassegnato come serialisable. A questo punto comincio a chiedermi se sto facendo questo torto: - /

Come si dovrebbe fare?

È stato utile?

Soluzione

This is how I got it to work.

  • Create a small serializable class in my provider which implements the interface
  • the consumer saves its' reference to the class in its' ViewState on PageLoad
  • the consumer is able to communicate with the provider using the instance of the class staored in the ViewState
  • WARNING the consumer should first read the value from the provider after the value has been set! PreRender is probably the best time to do this but it will depend on the implementation

@Vivek - it does appear to work without full page postback. Either that or the refresh is extremely fast ;-)

Altri suggerimenti

His webparts need to be within a single updatepanel (With this properties). Consider the following code:

<asp:UpdatePanel ID="updData" runat="server" EnableViewState="true" ChildrenAsTriggers="true" UpdateMode="Always">
    <ContentTemplate>
        <WebPartPages:SPProxyWebPartManager runat="server" id="spproxywebpartmanager">
        </WebPartPages:SPProxyWebPartManager>
        <WebPartPages:WebPartZone id="g_024D9466249F4885A5400ECE7C9A6076" runat="server" title="Default">
            <ZoneTemplate>
            </ZoneTemplate>
        </WebPartPages:WebPartZone>
    </ContentTemplate>
</asp:UpdatePanel>

I believe that the web part connetcion mechanism still requires a full page postback, so having an update panel wont work sucessfully.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top