Gridview e listview proprietà EnableModelValidation

venerdì 06 aprile 2012 - 12.38
Tag Elenco Tags  C#  |  .NET 3.5  |  .NET 4.0  |  Visual Studio 2010

andrestu Profilo | Expert

proprietà EnableModelValidation
sinceramente non mi è molto chiaro il significato, su MSDN viene riportato:

"Ottiene o imposta un valore che indica se un controllo di convalida gestirà le eccezioni che si verificano durante le operazioni di inserimento o aggiornamento."

i controlli di convalida gestiscono le eccezioni ?
qualcuno m'illumini perfavore...
grazie

Andrea Restucci - Web Developer

StefyGraf Profilo | Newbie

Ciao! Qui è spiegato molto bene con un esempio: http://www.meineck.net/2008/06/aspnet-dynamic-data-new-feature-in.html

In poche parole ogni record della gridview la devi vedere come una classe. Per esempio una gridview di ordini sarà caricata dalla tua classe "Ordine" in cui ci saranno le varie proprietà (Cliente, Codice, ecc.). Sopra queste proprietà dovresti mettere degli attributi che specificano le condizioni di come deve essere valido quel campo. Ecco quelli più usati: Required (campo obbligatorio), DataType(DataType.Date) (per specificare di che tipo sarà il campo), Range(1,10) (un intervallo compreso tra i due numeri). Sono molto utili perchè fanno tutto in una riga, cosa che tu avresti dovuta fare in molti metodi di aiuto (if(String.IsNullOrEmpty(campo.Text))...) quindi ti consiglio di usarli.

andrestu Profilo | Expert

ok io già utilizzo dei business object per l'interfacciamento ai dati ma questo sembrerebbe essere un ulteriore passo in avanti, un automatismo a quanto pare che riduce i tempi di sviluppo.
non ho letto molto a riguardo, ora ho poco tempo da dedicarci, ma se non ho capito male in base agli attributi inseriti nelle proprietò il framework ti crea tutta l'infrastruttura di convalida compresa la parte client...

Andrea Restucci - Web Developer

StefyGraf Profilo | Newbie

Esattamente! Questo concetto è alla base della validazione dell'MVC, ma è tutto più pulito visto i 3 livelli (Model, View, Controller) completamente separati.

andrestu Profilo | Expert

avevo iniziato a studiare MVC un pò di tempo fà ma poi preso da mille cose da fare e conoscendo già Aspnet ho lasciato perdere.
tu usi MVC per progettare siti web ?
al momento sto progettando un mini gestionale per agenzie immobiliare, quindi gestione degli immobili, utenti e molte altre funzionalità, consiglieresti l'utilizzo di MVC per un progetto simile?
quali sarebbero secondo te i vantaggi e gli svantaggi?
scusa se siamo andati un pò fuori argomento ma è una cosa che mi domando da un pò di tempo, non so se ne vale la pena avendo dedicato un sacco di tempo ad Aspnet passare ad un altra piattaforma (anche se non completamente diversa)...

Andrea Restucci - Web Developer

StefyGraf Profilo | Newbie

Io già da l'anno scorso ho iniziato ad utilizzare seriamente ASP.NET MVC 3 dopo aver provato MVC 1 e 2 perchè ha un view engine completamente rifatto (Razor) che semplifica molto la scrittura di codice server-side in una pagina: basta una @ davanti invece che <% %> con ASPX. Questo è un vantaggio enorme da non sottovalutare. Poi MVC è testabile alla perfezione, cosa che con le WebForms è più difficile perchè è tutto insieme. Con Razor che pagine non sono più .aspx, ma .cshtml. Poi la cosa che pesa più di tutte al passaggio da WebForms a MVC è che i controlli vanno scritti in HTML a mano. Non c'è pià la toolbox drag and drop con i controlli aspx (lo so... sono comodi), però in compenso ci sono di nativi molti helper Razor che sostituiscono un molti controlli aspx. Per esempio con @Html.TextBox("name", new { class = "txtbox" }) come potrai immaginare, creera una textbox chiamata "name" con "id". Io ti consiglio di passare a MVC perchè ormai è lo standard per tutti i framework.

andrestu Profilo | Expert

si ma in caso in cui la pagina creata fosse abbatanza complessa?
e cioè intendo una pagina con campi di ricerca, ordinamento, cambiamento dinamico di alcune parti del layout in base a comandi inviati sempre dalla pagina stessa, una pagina con molta interattività e non una semplice visuale di dati, si resce a costruire tranquillamente?
Il vantaggio dei controlli (a parte discorso rendering) è più che altro l'iterazione tramite codice, considero soprattutto la gestione degli eventi in relazione ai controlli e tutte le possibilità.
per farti un esempio banale, se voglio che ad un click di un pulsante nascondo una parte del layout e ne creo un altra dinamicamente lo posso fare tranquillamente tramite codice lato server senza conoscere una sola riga di Javascript.
Nel Caso di MVC come si trasformerebbe un simile comportamento?
Hai già progettato qualcosa di abbastanza 'articolato' con MVC?

Andrea Restucci - Web Developer

StefyGraf Profilo | Newbie

Sì, ho fatto qualche progetto così e la soluzione è una: jQuery. La parte server-side si sposta in secondo piano e gli eventi dei controlli non sono più gestibili da ASP.NET, ma solo da Javascript. Se è un vantaggio o uno svantaggio lo vedi in base alle esigenze, ma comunque quello che facevi nell'evento click da ASP.NET, si trasformava in Javascript, quindi penso che è meglio avere il controllo totale, invece che magari fargli fare qualche porcheria inutile.

andrestu Profilo | Expert

ma non saprei, se devi fare qualche operazione più complessa la vedo dura tutto con Javascript e Jquery lato client, forse in questo caso vengono di aiuto WebMethod e quant'altro.
Comunque, come hai detto tu, è probabile che allo stato attuale la risposta a quale sia meglio usare delle due tecnologia dipende dalla complessità e tipo di applicazione.



Andrea Restucci - Web Developer

StefyGraf Profilo | Newbie

Siccome Javascript mi piace molto utilizzarlo con jQuery, mi trovo benissimo con MVC. Sulle WebForms Javascript non fa differenza perchè anche il controllo client-side, li fanno i controlli AJAX già pronti. Sì, è solo questione di esigenze ed esperienza. Di solito chi ha grande esperienza con le WebForms non si muoverà mai! :D Guarda Microsoft... anche devo vedere un loro sito completamente sviluppato in MVC. Anche i siti che aprono nuovi sono tutti con WebForms e ASPX. Se non cominciano loro a darci esempio...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5