Domanda

Ho creato una webpart in c # per sharepoint. è fondamentalmente un modulo con caselle di testo, valori letterali, validatori e pulsanti.

Non sono sicuro di come rendere questo modulo per renderlo carino. Il layout ecc. È stato realizzato interamente all'interno di questa classe c #.

Al momento, per iniziare, sto semplicemente scavalcando il metodo CreateChildControls () e aggiungendo ogni controllo del form usando qualcosa come: this.Controls.Add(submitButton);

qualche idea su come organizzare meglio questo modulo?

Grazie.

È stato utile?

Soluzione

Quando creo webpart personalizzati, preferisco anche implementarli sovrascrivendo i metodi CreateChildControls () e Render () . Nel metodo Render () ho il pieno controllo dell'output HTML e posso rendere i miei controlli interni chiamando this.someInnerControl.RenderControl (writer) .

Avere il pieno controllo dell'output html semplifica anche lo stile dell'html tramite CSS. Come altri suggeriscono, usa un file CSS esterno e applica i porcili all'attributo class su elementi html o CssClass sul controllo web ASP.NET.

Quando implemento le webpart, che non richiedono un marchio speciale, preferisco riutilizzare le classi CSS definite da SharePoint. Ciò assicurerà che la mia webpart sia visivamente simile alla webpart fornita da SharePoint e che mantenga un aspetto coerente.

Quando si utilizzano gli stili CSS definiti da SharePoint, è necessario tenere presente l'output HTML. Alcune delle classi CSS richiedono una struttura html specifica per il rendering corretto. Puoi sempre utilizzare i browser " Visualizza sorgente " per controllare l'html dell'elemento SharePoint che si sta tentando di imitare.

Altri suggerimenti

Consiglio di prendere la fonte da una pagina di sharepoint esistente e di usare gli stili definiti da sharepoint. Questo link agli stili nel 2003 è vecchio, ma è ancora una buona guida per iniziare. La maggior parte dei nomi delle classi CSS non è cambiata.

Nelle mie web part includo file css nella soluzione e li inserisco nella pagina usando qualcosa del tipo:

this.Page.Header.RegisterCss("/_layouts/path/to/css/file.css", false);

Puoi sovrascrivere il metodo RenderContents (...) per eseguire il rendering manuale dell'HTML nel modo che preferisci. Ciò include l'aggiunta di eventuali inclusioni di CSS, script inclusi, ecc. Che si desidera / utilizzare.

È possibile eseguire il rendering dei controlli figlio su stringhe e quindi anche inviarli in output, ma probabilmente NON si deve chiamare il metodo base.RenderContents (...).

Assicurati solo di non dimenticare di rendere i controlli di tuo figlio.

Se per te è importante vedere mentre progetti, usa SmartPart che incorpora un controllo utente in una web part. (Nel caso non lo sapessi, i controlli utente possono essere progettati utilizzando gli strumenti di Visual Studio.)

Se preferisci scrivere a mano, allora sei sulla strada giusta. È sufficiente creare e impostare le proprietà iniziali per i controlli all'interno di Metodo CreateChildControls () e utilizza this.Controls.Add () come sei stato.

In entrambi i casi, ove possibile, utilizzare la proprietà CssClass in modo da poter armeggiare con l'aspetto grafico in un file CSS senza dover ricompilare. potresti codificare i nomi delle classi CSS ma sarebbe meglio usare le proprietà della web part o una fonte di configurazione esterna per memorizzarle. Avere un riferimento al file CSS nella pagina principale o iniettarlo nella pagina utilizzando le altre tecniche menzionate in questa risposta.

Gli articoli MSDN Web part in Windows SharePoint Services o < a href = "http://msdn.microsoft.com/en-us/library/ms415817.aspx" rel = "nofollow noreferrer"> La creazione di una web part di base potrebbe anche aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top