Domanda

Ho una pagina dell'applicazione SharePoint personalizzata distribuita nella cartella _layouts.È un "nuovo modulo" personalizzato per un tipo di contenuto personalizzato.Durante le mie interazioni con questa pagina, dovrò aggiungere un elemento alla mia lista.Quando la pagina viene caricata per la prima volta, posso utilizzare SPContext.Current.List per visualizzare l'elenco corrente con cui sto lavorando.Ma dopo aver compilato il modulo e il modulo si ripubblica su se stesso e IsPostBack è vero, SPContext.Current.List è null, quindi non riesco a trovare l'elenco in cui devo aggiungere i miei contenuti.

È previsto?

Come dovrei conservare alcune informazioni sul mio elenco di contesti nel postback?Dovrei semplicemente compilare un controllo asp:hidden con il guid della mia lista e poi ritirarlo da quello nel postback?Sembra sicuro, immagino.

FWIW, questa è la versione MOSS 2007 Standard.

È stato utile?

Soluzione

In generale, cerco di copiare qualsiasi approccio adottato dal gruppo di prodotti quando cerco di aggiungere funzionalità mie.In questo caso aggiungono le proprie pagine di modifica/visualizzazione/aggiunta tramite la definizione dell'elenco stesso.

Ho creato una soluzione che necessitava anche di un proprio modulo "Nuovo" personalizzato, purtroppo non open source, anche se se sei interessato puoi scaricarlo, si chiama "Tagged Links" (Social Bookmarking per SharePoint) e puoi trovare alcuni collegamenti sul mio blog.

Per darti alcuni suggerimenti e suggerimenti, quanto segue dovrebbe avviarti nella giusta direzione:

  1. Creata una nuova definizione di elenco.
  2. Creato un nuovo tipo di contenuto Nel tipo di contenuto puoi definire i tuoi "FormTemplates" che fanno riferimento a un modello di rendering che determina cosa viene visualizzato nella parte "centrale" di quei moduli.
  3. Copiato il modello di rendering standard, ma poi apportava le modifiche ad esso di cui avevo bisogno.
  4. Ha racchiuso il tutto in una soluzione e l'ha implementato.

Il mio modello di rendering in realtà includeva un pulsante "Salva" sovrascritto in cui ho svolto gran parte del lavoro extra che dovevo fare durante il salvataggio.

Ad ogni modo, secondo me è un po' troppo lavoro, ma credo che corrisponda maggiormente all'approccio standard adottato dagli sviluppatori del prodotto.Fammi sapere se hai bisogno di maggiori dettagli e vedrò se riesco a mettere insieme un post sul blog passo dopo passo, ma spero che questo ti porti nella giusta direzione.

Altri suggerimenti

Sarei sorpreso se potessi fare qualcosa in un file _Layouts che non puoi fare in un modello di modulo.Hai praticamente le stesse tecnologie a tua disposizione.

Osservando il modo in cui SharePoint funziona con le pagine ListItems e Layouts (ad esempio "Gestisci autorizzazioni" su un elemento di elenco), posso vedere che passano alcune variabili tramite querystring:?oggetto={76113B3A-FABA-4389-BC85-4BB2CC5AB423},6,LISTITEM&Lista={76113B3A-FABA-4389-BC85-4BB2CC5AB423}

Forse riprendono ogni volta il contesto in modo programmatico utilizzando questi valori.

Non sto utilizzando un "nuovo modulo" personalizzato, quindi ciò potrebbe non essere applicabile.Ho aggiunto un ricevitore di eventi al mio tipo di contenuto personalizzato e quindi ho creato il mio codice personalizzato negli eventi ItemAdded o ItemAdding.Questo codice viene attivato quando l'evento viene aggiunto a un elenco.È possibile utilizzare le proprietà del ricevitore eventi per accedere all'elenco padre, al Web e al sito.

Mi piacerebbe pensare che il mio problema sia "speciale" qui, poiché sto utilizzando un modulo personalizzato.Ho scelto di utilizzare un modulo personalizzato anziché un FormTemplate personalizzato semplicemente perché sto facendo molte cose che non sono molto simili a quelle di un elenco di SharePoint (effettuare chiamate Ajax per ottenere informazioni da un'app di terze parti quindi generare alcuni elementi di modulo dinamici basati su quel risultato Ajax, quindi la successiva elaborazione di tali dati nel postback).Ho pensato che sarebbe stato un incubo provarlo all'interno del consueto meccanismo del modello di rendering personalizzato.

Inoltre, non penso di poter fornire le dichiarazioni del modulo personalizzato nella definizione dell'elenco stesso, perché ho più tipi di contenuto associati a questo elenco e ogni tipo di contenuto ha il proprio modulo personalizzato (l'altro tipo è fortunatamente molto più semplice).

In realtà, il mio modo semplice di mantenere la guida dell'elenco nel campo nascosto era un modo a impatto molto basso per risolvere questo problema specifico.La mia preoccupazione principale è che non sono sicuro del motivo per cui SPContext perde tutta la sua utilità quando eseguo il postback qui, il che mi fa pensare che sto facendo qualcosa di sbagliato.

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