Oggi utilizziamo il pacchetto NuGet X.PagedList e Knockout js per crare una griglia con paginazione caricata completamente in ajax per un progetto ASP.NET MVC. Cominciamo con creare un progetto ASP.NET MVC e installiamo i seguenti pacchetti NuGet e tutte le loro dipendenze: X.PagedList.MVC v. 5.3.0.5300 knockoutjs v. 3.4.2 jQuery v. 3.1.1 Per caricare una griglia ed ef ...
ASP.NET
Selectize.js e Web API
Oggi mostriamo come utilizzare il componente Selectize.js all'interno di un progetto ASP.NET con l'utilizzo delle Web API per caricare i valori nel menù a tendina. Per iniziare: Creare un nuovo progetto ASP.NET di tipo Web API. Aggiornare tutti i pacchetti NuGet della soluzione. Aggiungere alla soluzione il pacchetto "selectize" alla versione più aggiornata, 0.12.1 al mom ...
Web Forms e dependency injection
La dependency injection è una funzionalità che non è supportata nativamente dalle web form. Tuttavia utilizzando la libreria Autofac è possibile in modo molto semplice e veloce utilizzare la dependency injection nei progetti web di tipo web form. Iniziamo con l'installare i due pacchetti nuget: Autofac Autofac.Web Registriamo i moduli necessari per il corretto funzionam ...
Abilitare la funzione “ricordami” i provider social in un progetto web forms
In questo articolo spieghiamo come implementare in modo semplice e rapido la funzione “ricordami” con le login social. Creando un nuovo progetto web application di tipo “web forms” è possibile scegliere la modalità di autenticazione “Individual User Accounts”. A questo punto abilitare le login social google, facebook o altre si riduce solamente alla configurazione delle varie ...
Extension Method per il databind di DropDownList
Ogni volta che nello sviluppo di una pagina Web Form dobbiamo effettuare il databind di una DropDownList, vanno settate diverse proprietà e chiamato il metodo Databind() e se poi vogliamo aggiungere servono altre righe di codice. Se in una pagina abbiamo numerose DropDownList questo porta ad una notevole ripetizione di codice. Un extension method sulla classe DropDownList ris ...
Validazione .Net con stile Bootstrap
Tramite l'override della funzione javascript ValidatorUpdateDisplay(val) è possibile rendere tutti gli errori di validazione con lo stile Bootstrap. La funzione in oggetto è la seguente: function ValidatorUpdateDisplay(val) { if (!val.isvalid) { $(val).parent().data('val-id', $(val).attr('id')); $(val).parent().addClass('has-error'); } else { ...
SignalR, un semplice esempio.
Oggi utilizzeremo la libreria SignalR per creare una semplice pagina web (html!) che permetterà di "scambiare messaggi" tra due utenti diversi utilizzando un semplice input. SignalR è una libreria fornita da Microsoft, composta sia da codice da eseguire lato server sia codice da eseguire lato client. La libreria aggiunge delle funzionalità "real-time" alle pagine web e ci perme ...
Come selezionare diversi valori di una CheckBoxList con un extension method
Continuiamo la nostra serie di extension methods da utilizzare per facilitarci il lavoro nello sviluppo web con il framework asp.net webforms. Oggi vediamo il codice, peraltro molto semplice, per selezionare diversi valori di una checkboxlist: public static void SetSelectedValues(this CheckBoxList ckl, IEnumerable<string> selectedValues) { if (ckl == null) ...
Accedere ai controlli e ai metodi della master page nel codebehind di uno Web User Control
Per accedere ai controlli e ai metodi di una MasterPage in uno web user control è sufficiente aggiungere le direttive <%@ Reference Control="~/MyMasterPage.master" %> <%@ Register Src="~/MyMasterPage.master" TagPrefix="master" TagName="master" %> al codice ascx dello web user control. In questo modo è possibile utilizzare la classe della master page nel co ...
Contains ignore case
Una piccola mancanza del framework .Net è un overload di String.Contains con parametri string e StringComparision. Il problema si risolve rapidamente con un semplice extension method: public static bool Contains(this string source, string toCheck, StringComparison comparer) { return source.IndexOf(toCheck, comparer) >= 0; } Grazie a questo accorgimento, potremo ...