Come convalidare il valore della proprietà web part?
-
16-10-2019 - |
Domanda
Una parte web personalizzato ha personalizzati proprietà della parte web. Vorrei confermare con codice lato server personalizzato quando l'utente cambia il valore della proprietà (o quando le proprietà vengono salvati bing). È possibile? Posso mostrare un messaggio di errore nel riquadro strumento che descrive il problema che si è verificato?
Esempio: ho una parte web dove l'utente deve inserire un nome di lista (in una proprietà). Vorrei verificare se la lista con tale nome esiste una.
Soluzione
si potrebbe creare un EditorPart personalizzato che crea un'interfaccia personalizzata in cui si verifica l'ingresso. Check this out: Web Proprietà parte - parte 2 - Editor Parts
Altri suggerimenti
spero che questo ti può aiutare, ma decorate non l'ho testato. È possibile trovare un esempio qui: http://www.sharepoint-tips.com /2010/06/validating-web-part-properties.html
private string _webPartContentLink = null;
[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(true)]
[System.ComponentModel.Category("Services")]
[WebDisplayName("Enter WebPart Content Link")]
[WebDescription("Enter WebPart Content Link")]
public string WebPartContentLink
{
get
{
if (_webPartContentLink == null)
{
_webPartContentLink = string.Empty;
}
return _webPartContentLink;
}
set
{
if (!value.StartsWith("http://"))
throw new WebPartPageUserException("The WebPart Content Link is not valid");
}
_webPartContentLink = value;
}
}
In aggiunta a quanto detto Wictor, ricordarsi di definire il proprio ValidationGroup quando si utilizza personalizzato o fuori dalla scatola validatori di ASP.NET, in questo modo non si ottengono le interferenze di altri controlli di convalida che potrebbe essere sulla stessa pagina quando si fare un back postale (forse un argomento per il tuo libro Wictor: -?)
Si potrebbe anche creare una parte editor personalizzato con una casella di testo e controllo di convalida ASP.NET, per esempio un RegularExpressionValidator. Questo ti dà la validazione lato client sulla proprietà. L'unico svantaggio che posso vedere con questa soluzione è che le parti editor personalizzato sono sempre visualizzati nella parte superiore (che molto anoying ...).
Si veda questo articolo di MSDN per una passeggiata-through: http: // msdn.microsoft.com/en-us/library/hh228018.aspx#Y4419