Domanda

In un sito di pubblicazione, voglio creare un webpart che visualizzare il risultato di una query con una visualizzazione personalizzata (una sorta di rotatore).

Poiché l'obiettivo della parte web è quello di essere riutilizzabile e deve essere semplicemente configurabile dall'utente, mi chiedo quali sono i pro ei contro dei seguenti approcci:

  • parte web personalizzata che produce il codice HTML in un modo "hard-coded". Aggiungere riquadro strumento per consentire all'utente di dati di configurazione
  • Contenuto parte query web con una trasformazione XSLT
  • web part Silverlight con un riquadro opzione personalizzata all'interno del webpart

mi sento la seconda soluzione può essere migliore perché l'intera impostazione del webpart è già qui, ma temo un po 'XSLT sarà molto doloroso.

grazie in anticipo per le vostre risposte

È stato utile?

Soluzione

Non abbiate paura di XSLT. Questo sta per darvi un enorme quantità di energia senza dover sviluppare o implementare qualsiasi cosa in cambio di un piccolo sforzo per capirlo. Io consiglio sempre di iniziare con un'identità di trasformare in modo che si può vedere la XML che sta arrivando, e poi iniziare ad aggiungere i modelli per elaborare i nodi a cui è interessato.

Visual Studio ha grande utensili per lavorare con XSLT. È possibile creare un XSLT intitial con un'identità trasformare e quindi utilizzarlo per trasformare un file XML di origine (corrispondente ai dati lista). È quindi possibile avviare la trasformazione in modalità debug e breakpoint e passo attraverso il vostro XSLT.

Detto questo, ci sono casi in cui la scrittura di una parte web personalizzato ha un senso. Ci può essere qualcosa che è necessario che CQWP non può fare, o la soluzione CQWP può essere molto contorto in alcuni casi. Questo è qualcosa che si deve decidere dalla comprensione del problema. Ma non evitare CQWP a causa di XSLT.

Altri suggerimenti

Per il vostro caso, vale a dire la visualizzazione dei risultati con display personalizzato, consiglio due opzioni:

  1. Trasforma risultati sul lato client, per esempio se si utilizza un qualche tipo di plugin jQuery per Rotator, sarebbe possibile inizializzare risultati dei dati per Rotator con jQuery.
  2. L'opzione con l'estensione del CQWP, in quel caso si potrebbe personalizzare il rendering dei risultati, ad esempio, vedere il mio blog rendering del contenuto dei risultati di query Web Part nella tabella layout su come disporre gli elementi in Plain Old tabella layout invece di Lista layout

Un'altra opzione, ampliando Bill (SPDoctor) 's risposta, è di estendere il CQWP, con la creazione di una nuova classe per il vostro parte web che eredita da ContentByQueryWebPart.

Questo vi permetterà di aggiungere più opzioni per la toolpane per controllare la logica, così come i metodi personalizzati mettere a disposizione nel vostro XSLT, che si può scrivere "code-behind" per nella classe di tuo WebPart.

Waldek Mastykarz ha coperto questo in una serie di eccellenti post di blog su questo sito: http://blog.mastykarz.nl/extending-content-query-web-part-with-custom-data/

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