Tra tutti i modelli di sviluppo che si potrebbe adottare per estendere o integrare SharePoint, le WebPart rivestono sicuramente un ruolo di primo piano, grazie soprattuto alla possibilità, con semplici accorgimenti, di riutilizzare le WebPart sviluppate per ASP.NET.
A rendere ancora più allettante l'uso delle WebPart è la possibilità connetterle tra loro: alterando lo stato della WebPart "provider" andremo a influenzare lo stato della WebParte "consumer".
Allo scopo sviluppaimo due semplici WebPart: la prima visulizza una DropDownList con l'elenco delle categorie di prodotti di un ipotetico negozio, mentre l'altra invece visualizza l'elenco dei prodotti relativi alla categoria selezionata nella prima.
Senza dilungasi troppo sul codice necessario a creare le WebPart, che comunque trovate allegato, soffermiamoci sui due attributi che rendono possibile questa "magia".
ConnectionProviderAttribute serve a decorare il metodo GetCategory della nostra WebPart "provider", il quale verrà richiamato ogni qualvolta sia necessario "filtrare" la WebPart "consumer", che è decorata con l'attributo ConnectionConsumerAttribute.
[ConnectionProvider("Category")] public string GetCategory() { if (_categoryDropDownList.SelectedValue != "NF") { return _categoryDropDownList.SelectedValue; } else { return string.Empty; } }
Non rimane altro che decorare il metodo SetCategory della WebPart "consumer":
[ConnectionConsumer("Categery")] public void SetCategory(string category) { Category = category; }
A tutto il resto penserà SharePoint.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)