giovedì 28 maggio 2009

Asp Net generare file pdf

Vi segnalo questo nuovo articolo http://www.dotnetromacesta.org/common/articoli/aspnet/pdf/Creare_un_File_PDF.aspx riguardante la creazione di file pdf, in ambiente Asp Net, tramite il linguaggio Vb.Net e C#

martedì 26 maggio 2009

asp net utilizzare il meta tag description e keyword nelle pagine in cui si fa uso delle master page

Da questo sito http://www.dotnetromacesta.org/common/trucchi/aspnet/varie/Gestire_Tag_Desciption_e_keyword.aspx trovate un trucco riguardante Asp.Net
In particolare, come applicare nelle pagine che fanno uso della Master page, l'aggiunta del meta tag description e keyword.
Che dirvi buona lettura :- )))

Altro materiale formativo su VS2010 beta

Altri documenti, e risorse utile per chi è interessato alla versione di Visual Studio 2010 team edition.



Dal seguente sito http://msdn.microsoft.com/en-us/teamsystem/dd441784.aspx si trovano alcuni link interessanti, riguardante la beta di Visual Studio 2010.



Che dirvi... buona lettura :- )))

giovedì 21 maggio 2009

linq to Sql SErver Compact Edition

Qui di seguito http://www.dotnetromacesta.org/common/articoli/sqlServer/compactEdition/Utilizzare_il_designer_di_LINQ_con_SQL_Server.aspx potete leggere un articolo riguardante Linq e Sql SErver Compact Edition.

Che dirvi... buona lettura :- )))

mercoledì 20 maggio 2009

Download Visual Studio 2010 beta 1

Dal seguente sito http://msdn.microsoft.com/en-us/teamsystem/dd582936.aspx o http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx è possibile scaricare gratuitamente la versione Visual Studio 2010 beta 1.



Nel pacchetto è incluso anche la versione del Framework 4.0 beta 1.



Mentre da questo sito http://msdn.microsoft.com/en-us/library/dd831853(VS.100).aspx la pagina per iniziare, qui http://msdn.microsoft.com/en-us/dd238515.aspx gli esempi per il linguaggio Visual Basic Net, C#, Visual C++ e F#.



Un altro download che consiglio è il training kit, scaricabile dal seguente sito http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=752cb725-969b-4732-a383-ed5740f02e93 un pacchetto con esempi, demo, ed altro materiale formativo.



Infine dal seguente sito http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=5aca0622-d87d-4cc9-a22c-0d58205a56b4 esempi su WCF e WWF.

lunedì 18 maggio 2009

Download free cms Asp.net

Perr coloro che utilizzano e sono interessanti ai CMS, segnalo http://n2cms.com/ N2, un cms gratuito, che si basa sulla tecnologia Asp.Net
Il cms è gratuito, ed open source, ossia correlato dai sorgenti, scaricabili dal seguente sito http://n2.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24776 .
Per vedere una demo, visitate il seguente sito http://templates.n2cms.com/ .

giovedì 14 maggio 2009

La gestione della Scroll bar di una listbox tramite vb.net

Vi segnalo l'articolo di Massimo a questo indirizzo http://www.dotnetromacesta.org/common/articoli/WindowsApp/controlli/Controllare_lo_scroll_di_una_ListBox_da_codice.aspx nel quale è illustrato una tecnica di come utilizzare la scroll bar di un controllo listbox in VB.NEt

mercoledì 13 maggio 2009

Download SQL Server 2008 Developer Training Kit

Dal seguente sito http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=e9c68e1b-1e0e-4299-b498-6ab3ca72a6d7 potete un file compresso, contenente del materiale formativo per chi utilizza Sql Server 2008.



Nel pacchetto si trovano, slide, esempi di codice, progetti, ed altro ancora, molto utile per coloro che sviluppo soluzioni con il database Sql Server 2008.



 



 

domenica 10 maggio 2009

Recensione libro: Microsoft Sql Server 2008 Passo per passo



Scheda del libro:




























Autore:
Mike Hotek
Prezzo:Euro 100,00
Caratteristiche
536 pagine
ISBN


978886114182
anno di edizione2009
numero dell'edizione1
Argomento:Programmazione
LinguaItaliano


Per coloro che si avvicinano al database Microsoft Sql Server 2008, o per coloro che già l'utilizzano ma sono interessati ad acquisire una buona dimestichezza, il libro Microsoft Sql Server 2008 Passo per Passo http://www.mondadorinformatica.it/scheda/978886114182 della casa editrice Mondadori Informatica http://www.mondadorinformatica.it/ fornisce al lettore le basi per utilizzare al meglio il database Microsoft Sql Server 2008.


Il libro è composto da due volumi, nel primo si trovano i capitoli dedicati alla progettazione e manipolazione del database, mentre nel secondo volume si trovano argomenti che trattano la gestione del database e la Business Intelligence, argomento molto richiesto in questi ultimi anni.


A differenza di molti manuali, in questo si trova un CD-ROM, nel quale contiene gli esempi utilizzati nei vari capitoli, l'ebook del manuali originale in lingua Inglese, ed alcuni capitoli di esempio di altri libri. Il libro è composto da ben 26 capitoli suddiviso in 7 parti.


Il libro è scritto da Mike Hotek, esperto di Sql server con ben trent'anni di esperienza come consulente, scrittore e sviluppatore di applicazioni di database. Ha pubblicato numerosi articoli e libri, nonché speaker in diversi seminari e conferenze in tutto il mondo.


Ma vediamo in dettaglio i vari capitoli che fanno parte di questo manuale.


Nel primo capitolo, che comprende la prima parte del libro, quella dedicata al database. In questo capitolo sono forniti informazioni generali riguardante il database, le varie funzionalità messe a disposizione, ed i vari requisiti. Questo capitolo è molto breve, illustra a grandi linee il database.


Nel secondo capitolo, sempre in tema di amministratore di database, prende in considerazione l'installazione e configurazione del database, dopo aver fornito al lettore la varie tipologie di versioni del database, dei requisiti e dell'autenticazione, si passa all'installazione che concluderà il capitolo, il lettore sarà facilitato a comprendere i vari passaggi grazie alle numerose immagini.


Con il terzo capitolo, si conclude la prima parte del libro, in questo capitolo sono affrontati gli strumenti messi a disposizione dal database, come la documentazione, la gestione configurazione di Sql Server , lo strumento sql server mangement studio che permette graficamente di eseguire qualsiasi operazione sul database, il profiler, la configurazione della posta elettronica e tanto altro ancora.


La seconda parte è dedicata alla progettazione del database, con il capitolo quarto, si passa alla seconda parte. In questo capitolo vedremo la creazione di un database, nelle prime pagine, viene fatta un'introduzione, riguardante i tipi di database (di sistema) i tipi di file di cui è composto un database ed ulteriori informazioni tramite rappresentazioni grafiche e tabellare, tutto questo per dare al lettore le basi di come viene gestito un database.


Terminata questa parte introduttiva, si passa alla creazione di un database, tramite istruzione sql, e la possibilità di collegare un database esistente.


Nel quinto capitolo si passa alle tabelle, dopo una breve introduzione, si passa alla creazione di uno schema, successivamente, vedremo i tipi di dati, che si possono utilizzare nelle tabelle (data, xml, numerici, ecc) e successivamente la creazione di una tabella tramite comandi sql. Continuando a leggere il capitolo, vengono descritti altre utili informazioni che un bravo dba o sviluppatore deve fare, ossia la creazione di chiavi, di vincoli, ed altro ancora.


Nel sesto capitolo, si passa agli indici, anche se in molti non danno rilievo, gli indici hanno una grande importanza, nelle prime pagine, troviamo una valida spiegazione, nonchè delle rappresentazioni grafiche, per dare chiarezza al lettore dell'argomento che si sta trattando. Un capitolo che affronta in modo chiaro ed esauriente questo tema.


Man mano che si continua a leggere il libro, la complessità degli argomenti aumenta, nel settimo capitolo, viene presa in esame il partizionamento. Dopo una breve introduzione, si passa ad una serie di esempi di codice sql, per effettuare delle partizioni. Continuando nella lettura del capitolo, si passa anche agli operatori split e merge e switch.


Con il capitolo 8, si passa alla terza del libro. il capitolo affronta le prime istruzioni sql, ed in particolare il comando select, per il recupero dei dati. Il capitolo contiene moltissimi esempi di Sql, tutti riguardante il comando select.


Mentre nel capitolo ottavo sono forniti al lettore le basi per la creazione di comandi sql riguardante la select, con il capitolo nono, si passa alla creazione di comandi select più complessi, operazioni avanzate. Vedremo l'utilizzo anche di funzioni come count, min, max, avg, sum, aggregazioni e tante altre funzionalità.


Nel capitolo 10, si passa ad un altro comando sql, ed in particolare al comando Insert. Anche in questo capitolo, si trovano numerosi esempi di codice sql, per eseguire il comando insert, per l'inserimento dei dati nelle tabelle. Nel capitolo sono illustrati vari tipi di inserimento. Continuando a leggere il capitolo, si passa ad un altro comando sql, delete, un comando per la cancellazione dei dati. Al termine di tale comando, si passa ad un altro comando, la modifica dei dati tramite il comando update.


Il capitolo decimo, conclude la terza parte del libro, una parte molto importante sia per coloro che si avvicinano al mondo dei database e sia per coloro che già lo utilizzano, ma non in maniera approfondita, questa parte, darà al lettore delle valide conoscenze sui comandi più comuni del database sql server e sql in genere.


Con il capitolo 11, si passa alla quarta parte del libro, nel capitolo sono affrontate le viste. Questo capitolo, è molto interessante anche per coloro che sviluppano software, non sono per gli amministratori di database ma anche per gli sviluppatori. Nel capitolo, si trovano diversi esempi di codice sql, che forniscono al lettore le conoscenze per la gestione delle viste. Vedremo la creazione di viste semplici, quelle per la modifica dei dati, quelle indicizzate, e di sostituzioni. Un capitolo che a differenza dei precedenti è molo breve.


Il capitolo successivo, ossia il 12, si passa ad un tema molto importante sia per coloro che devono amministrare il database,e sia a coloro che devono sviluppare software. Nel capitolo sono trattate le Stored Procedure. Il capitolo fornisce le basi per la creazione di Store Procedure semplici e non.


Il capitolo 13, riguarda le funzioni, in particolare la creazione delle funzioni di sql server. Dopo aver dato una panoramica molto breve sulle funzioni di Sql Server, si passa alla creazione di funzioni tramite il comando sql create function. Nel capitolo si trovano diversi esempi di codice sql, anche se in maniera ridotta dei capitoli precedenti.


Nel capitolo 14, prende in esame un argomento molto complesso ma poco usato, da coloro che utilizzano poco il database Sql Server. In questo capitolo, si affronta la creazione dei Trigger, dopo una breve introduzione, sono illustrati alcuni esempi di codice sql per la creazione di un trigger. Il capitolo è abbastanza breve.


Nel capitolo 15 si passa alla creazione dei Snapshot di database, il capitolo è molto breve, giusto qualche (4) esempio di codice sql per fornire alcune indicazioni.


Nel penultimo capitolo del primo manuale e della quarta parte del libro si affronta i Service Broker. In questo capitolo (16) viene descritta la funzionalità introdotta con la versione 2005 di questo database. Nelle prime pagine viene fatta una panoramica, per poi passare ad esempi pratici. Un capitolo che contiene molti esempi di codice, e che fornisce indicazioni importanti e precise.


Il capitolo 17, conclude la quarta parte del libro, nonchè il primo manuale. In questo capitolo, vedremo l'indicizzazione Full-Text. Il capitolo è molto breve, ma permette di acquisire delle ottime indicazioni, nel capitolo si trovano diversi esempi di codice Sql.


I capitoli che vanno dal 18 in poi, si trovano nel secondo libro, quello dedicato alla gestione del database e business intelligence. Nel capitolo 18, si passa alla quinta parte del libro, in questo capitolo affronta un argomento molto importante e delicato, la protezione.


I dati, hanno una grande importanza nelle applicazione, così con il crescere di sistemi sempre più legati al web, con possibili attacchi dall'esterno, la protezione dev'essere sempre più curata e analizzata. Il capitolo, tratta proprio questo tema, la protezione dando indicazioni importanti di come rendere il database sicuro, la gestione degli accessi, i ruoli, le autorizzazioni, la crittografia dei dati e tanto altro. Un capitolo ampio con diverse immagini, per fornire chiarezza al lettore che legge il capitolo.


Nel capitolo 19, viene illustrata la gestione dei criteri. Dopo una breve introduzione nella prima pagina, si passa subito alla creazione di un criterio, tutto guidato passo dopo passo, anche con l'aiuto di molte immagini.


Il ventesimo capitolo, riguarda il ripristino dei dati, come ripristinare un backup di un database. Dopo una breve introduzione e dopo alcuni esempi di codice sql per il backup di un database, si passa al ripristino del database, illustrando anche in questo caso, il codice sql.


Nel capitolo 21, viene illustrato l'agente sql server, uno strumento utile per gli amministratori di questo database. Dopo una breve introduzione, si passa alla creazione di un operatore, illustrando passo dopo passo e con diverse immagini questa fase, successivamente viene illustrato la creazione dei piani di manutenzione, anche in questo caso si trovano diverse immagini. La parte conclusiva del capitolo è dedicata alla creazione degli avvisi.


Nel capitolo 22, si conclude la quinta parte del libro, il capitolo è rivolto alla creazione di viste per la gestione dinamica. Si trovano numerosi esempi di codice sql, il capitolo è molto breve, ma con validi esempi.


La sesta parte del libro, comprende un solo capitolo, il 23, nel quale viene trattato un tema molto delicato ma importante, che permette una gestione ottimizzata delle risorse del server e rete. Come l'installazione e configurazione su Cluster, installazione e configurazione la distribuzione log, e la replica. Un capitolo molto ampio, con numerose immagini e pochi esempi di codice, perchè l'argomento è più a livello di amministrazione tramite tools che da codice sql.


Nel capitolo ventiquattro, si passa all'ultima parte del libro, quella dedicata al Business Intelligence. In questo capitolo vedremo i servizi messi a disposizione da questo database, dopo una breve introduzione ai servizi di integrazione, si passa alla creazione di un progetto Sql Server Integration Services, vedremo diverse fasi di questo modello di progetto. Continuando per il capitolo, si passa alla creazione di un pacchetto, flussi di controllo, e tanto altro ancora.


Nel pen'ultimo capitolo (25) viene illustrata la gestione dei report. Reporting Services, una tecnologia che permette di creare dei report, nel capitolo, viene illustrato la configurazione di Reporting Services, guidando il lettore tramite le numerose immagini. La creazione di un report, anche in questo caso troviamo diverse immagini, per dare chiarezza a ciò che si sta illustrando. Continuando a leggere questo capitolo, viene illustrata anche la parte riguardante la personalizzazione del report, con l'aggiunta di elementi interattivi, formule e l'aggiunta di parametri. La parte conclusiva del capitolo illustra la distribuzione dei report.


Il capitolo (26) conclusivo del libro, è dedicato a Sql Server Analysis Services, ed affronta in maniera generale questo tema, fornendo al lettore le basi. Nelle prime pagine viene fatta un introduzione sui data warehouse, ma continuando la lettura del capitolo, sono presi in esami altri aspetti. Nel capitolo, come nei precedenti, si trovano diverse immagini.


Di seguito si riportano i vari capitoli che compongono questo buon manuale.


Parte 1) Introduzione a Microsoft Sql Server 2008


1) Cenni generali su Microsoft Sql Server


2) Installazione e configurazione di Sql Server 2008


3) Utilizzo degli strumenti di Sql Server 2008.


Parte 2) Progettazione dei database


4) Creazione dei database


5) Progettazione delle tabelle


6) Indici


7) Partizionamento


Parte 3) Recupero e manipolazione dei dati


8) Recupero dei dati


9) Recupero avanzato dei dati


10) Manipolazione dei dati


Parte 4) Progettazione di oggetti di database avanzati


11) Viste


12) Stored Procedure


13) Funzioni


14) Trigger


15) Snapshot di database


16) Service Broker


17) Indicizzazione full-text


Parte 5) Gestione dei database


18) Protezione


19) Gestione basata sui criteri


20) Riprisitino dei dati


21) Agente Sql Server


22) Viste di gestione dinamiche


Parte 6) Cenni generali sulla disponibilità elevata


23) Disponibilità elevata


Parte 7) Business Intelligence


24) Servizi di integrazione di Sql Server


25) Reporting Services di Sql Server


26) Sql Server Analysis Services



Conclusioni:


Un libro scritto in lingua italiana, in modo molto chiaro e comprensibile, adatto sia a coloro che si avvicinano per la prima volta a questo database e sia a coloro che già lo utilizzano ed hanno una conoscenza di base. In molti casi, si usano più le istruzioni sql, che le funzionalità messi a disposizione dal tools management studio di Sql Server. Il titolo del libro è molto appropriato, infatti, passo per passo, si viene guidati nell'argomento che si sta trattando, una valida guida, che semplifica e fa comprende l'utilizzo di questo database.

mercoledì 6 maggio 2009

Asp.Net applicare in un controllo GridView, un linkbutton per esportare in Excel

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_inserire-un-linkbutton-nel-footer-del-co_708.aspx riguardante la possibilità di esportare una griglia in formato Excel.



ntroduzione



In questo articolo, vedremo come esportare un controllo gridview in Microsoft Excel 2007, tramite la tecnologia Asp.Net 3.5.



La gridView, sarà dotato di un pulsante nel footer (Figura 1) di tipo linkbutton, il quale avrà il compito di esportare la griglia in formato Excel.







Figura 1






Predisposizione della pagina



Dopo aver selezionato nuovo progetto web, da Visual Studio 2008, entriamo nella parte sorgente html della pagina web, in alto nell'intestazione inseriamo il seguente parametro alla pagina.



EnableEventValidation="false"

Terminato ciò, passiamo in visualizzazione designer, ed inseriamo un controllo gridiview, il controllo gridview avrà due colonne, nella prima verrà visualizzata la descrizione di un determinato prodotto, mentre nella seconda colonna, l'importo di tale prodotto. Dopo aver impostato la proprietà showfooter a true del controllo gridview, passiamo in visualizzazione codice html, per personalizzare le colonne della griglia.



La colonna Descrizione, sarà di tipo template field, mentre la colonna tipo, è di tipo classica, ossia boundfield.



Di seguito si riporta il frammento di codice della griglia.



<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"



ForeColor="#333333" GridLines="None" ShowFooter="True">



<RowStyle BackColor="#EFF3FB" />



<Columns>



<asp:TemplateField HeaderText="Descrizione">



<ItemTemplate>



<asp:Label ID="lblDescrizione" Text='' runat="server">asp:Label>



ItemTemplate>



<FooterTemplate>



<asp:LinkButton ID="lnkEsporta" Text="Esporta Excel" runat="server" OnClick="LnkEsportaExcel_Click">asp:LinkButton>



FooterTemplate>



asp:TemplateField>



<asp:BoundField DataField="Importo" HeaderText="Importo" />



Columns>



<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />



<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />



<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />



<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />



<EditRowStyle BackColor="#2461BF" />



<AlternatingRowStyle BackColor="White" />



asp:GridView>








Come si vede, avremmo una colonna di tipo templateField, nella quale si trova un altro oggetto di tipo itemTemplate, al cui interno, un oggetto di tipo label.



La proprietà Text, ossia la visualizzazione del testo, viene impostato tramite Eval(“Descrizione”) che è il nome della colonna della fonte dati a cui sarà associato il controllo GridView.



Sempre per la templetaField, si noti un altro oggetto di tipo FooterTemplate, in questo modo, possiamo personalizzare il footer con i controlli di proprio gradimento, in questo caso con il controllo linkbutton. Nell'attributo onClick dell'oggetto linkbutton, viene impostato la funzione evento di tale controllo, in questo modo quando viene fatto click su tale controllo sarà eseguito la funzione a cui fa riferimento



La colonna successiva, è di tipo boundfield.






Stesura di codice.



Terminata la progettazione della nostra pagina web, ora non ci resta che scrivere il codice per esportare la griglia in formato Microsoft Excel.



Nel load della Form, inseriamo il seguente codice, per il caricamento della griglia.





VB.Net



Dim dttDati As New DataTable

Dim dtcDescrizione As New DataColumn("Descrizione")

Dim dtcImporto As New DataColumn("Importo")

dttDati.Columns.Add(dtcDescrizione)

dttDati.Columns.Add(dtcImporto)

Dim dtrRiga As DataRow = dttDati.NewRow()



dtrRiga("Descrizione") = "Hard Disk"

dtrRiga("Importo") = 100.3

dttDati.Rows.Add(dtrRiga)

dtrRiga = dttDati.NewRow()

dtrRiga("Descrizione") = "Mouse"

dtrRiga("Importo") = 10.4

dttDati.Rows.Add(dtrRiga)

dtrRiga = dttDati.NewRow()

dtrRiga("Descrizione") = "Crediti precedenti"

dtrRiga("Importo") = -5.2

dttDati.Rows.Add(dtrRiga)

GridView1.DataSource = dttDati

GridView1.DataBind()







C#

DataTable dttDati = new DataTable();

DataColumn dtcDescrizione = new DataColumn("Descrizione");

DataColumn dtcImporto = new DataColumn("Importo");

dttDati.Columns.Add(dtcDescrizione);

dttDati.Columns.Add(dtcImporto);

DataRow dtrRiga = dttDati.NewRow();



dtrRiga["Descrizione"] = "Hard Disk";

dtrRiga["Importo"] = 100.3;

dttDati.Rows.Add(dtrRiga);

dtrRiga = dttDati.NewRow();

dtrRiga["Descrizione"] = "Mouse";

dtrRiga["Importo"] = 10.4;

dttDati.Rows.Add(dtrRiga);

dtrRiga = dttDati.NewRow();

dtrRiga["Descrizione"] = "Crediti precedenti";

dtrRiga["Importo"] = -5.2;

dttDati.Rows.Add(dtrRiga);

GridView1.DataSource = dttDati;

GridView1.DataBind();



Ora non ci resta che creare la funzione che viene avvita al click del controllo linkbutton, il codice riportato qui di seguito, tramite gli oggetti stringWriter e htmlTextWriter, trasforma il contenuto html in uno streaming formato Microsoft Excel, dopo aver impostato il tipo di contenuto ed il nome del file.



VB.Net





Protected Sub LnkEsportaExcel_Click(ByVal sender As Object, ByVal e As EventArgs)

Response.Clear()

Response.Buffer = True

Response.ContentType = "application/ms-excel"

Response.AddHeader("content-disposition", "attachment;filename=NomeFile.xls")

Response.Charset = ""

Dim swr As New System.IO.StringWriter()

Dim htw As New System.Web.UI.HtmlTextWriter(swr)

GridView1.RenderControl(htw)

Response.Write(swr.ToString())

Response.End()

End Sub

C#

protected void LnkEsportaExcel_Click(Object sender, EventArgs e)

{

Response.Clear();



Response.Buffer = true;



Response.ContentType = "application/ms-excel";

Response.AddHeader("content-disposition", "attachment;filename=NomeFile.xls");

Response.Charset = "";



System.IO.StringWriter swr = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(swr);



GridView1.RenderControl(htw);

Response.Write(swr.ToString());

Response.End();

}

Prima di testare la nostra pagina, dobbiamo creare l'ovverrides dell'evento della verifica del rendering, della pagina, per evitare che si possano verificare problemi


VB.Net

Public Overrides Sub VerifyRenderingInServerForm(ByVal control As System.Web.UI.Control)



End Sub

C#



public override void VerifyRenderingInServerForm(Control control)

{

}



Non ci resta che eseguire la nostra applicazione, ed effettuare una prova.





Conclusioni:



L'articolo ha voluto illustrare al lettore, la possibilità di ampliare il controllo gridview, con l'aggiunta di un oggetto di tipo linkbutton, per l'esportazione della griglia in formato Microsoft Excel.



La funzionalità di esporta griglia, può tornare utile in diversi contesti.



Tramite la parola download è possibile scaricare il file d'esempio utilizzato in questo articolo.






Download

Asp Net inserire una colonna di tipo immagine nel controllo GridView

Riporto l'articolo scritto per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_aspnet-inserire-una-colonna-immagine-in-_713.aspx


Introduzione:



Nel caso che si devono creare delle griglie, con delle colonne che evidenziano tramite immagine lo stato dei dati, o altre indicazioni, tramite la creazione di colonne personalizzate possiamo dotare il controllo gridView di questa particolarità.



Di seguito viene illustrato come creare un controllo GridView, nel quale ci sia una colonna di tipo immagine, che in base al valore di una colonna nascosta, verrà visualizzata una determinata immagine (figura 1) .








Figura 1






Aggiungiamo nel nostro progetto web, un controllo gridView, ed un pulsante. Per il controllo gridview, impostiamo la proprietà autogeneratecolomn a false.



Passiamo in visualizzazione codice html, in questo modo impostiamo le colonne da visualizzare nella griglia.






Qui di seguito si riportano le colonne di cui è composto il controllo gridview.









<Columns>



<asp:BoundField DataField="ValoreStato" ReadOnly="true">



<ItemStyle Font-Size="0pt" Width="0px" Wrap="False" />



<HeaderStyle Font-Size="0pt" Width="0px" Wrap="False" />



<ControlStyle Font-Size="0pt" Width="0px" />



<FooterStyle Font-Size="0pt" Width="0px" Wrap="False" />



asp:BoundField>



<asp:TemplateField>



<HeaderTemplate>



<input ID="chkAll" runat="server"



type="checkbox" />





HeaderTemplate>



<ItemTemplate>



<asp:Panel ID="Panel2" runat="server" Height="16px" Width="20px">



<asp:CheckBox ID="chkSeleziona" runat="server" Text=" " Width="18px" />



asp:Panel>



ItemTemplate>



asp:TemplateField>



<asp:TemplateField HeaderText="Stato">



<HeaderStyle Font-Size="Smaller" Wrap="False" />



<ItemTemplate>



&nbsp;<asp:Image ID="ImgAccettato" runat="server" ImageUrl="~/Img/si.png"



ToolTip="Validato" />



<asp:Image ID="ImgRifiutato" runat="server" ImageUrl="~/Img/no.png"



ToolTip="Rifiutato" />



<asp:Image ID="ImgAttesa" runat="server" ImageUrl="~/Img/attesa.png"



ToolTip="In attesa di validazione" />



ItemTemplate>



<ItemStyle Wrap="False" />



asp:TemplateField>



<asp:BoundField DataField="Nome" HeaderText="Nome" />



<asp:BoundField DataField="Anni" HeaderText="Anni" />



VB.Net

Columns>






Notiamo con attenzione la creazione di queste colonne.



La prima colonna, chiamata ValoreStato di tipo bounField, avrà il compito di contenere il valore di ogni riga relativo allo stato, in questo modo a secondo del valore, verrà visualizzata una determinata immagine.



La seconda colonna di tipo template field, visualizzerà una colonna di tipo checkbox, in questo caso, può essere anche omessa.



La terza colonna, sempre di tipo templateField, avrà il compito di visualizzare l'immagine, in base al valore impostato nella prima colonna.



Come si vede, abbiamo degli oggetti di tipo itemTemplate, nel quale si trovano oggetti image, contenenti l'immagine da visualizzare.



Le ultime due colonne di tipo buondField, sono colonne che visualizzano i dati.



Terminata la personalizzazione del controllo gridView, passiamo in visualizzazione, codice, in particolare, nell'evento load della pagina, in modo che valorizziamo con dei dati, il controllo gridview.



Qui di seguito si riporta un esempio di codice.









VB.Net



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Page.IsPostBack <> True Then

Dim dttDati As New DataTable()

Dim dtcValoreStato As New DataColumn("ValoreStato")

Dim dtcNome As New DataColumn("Nome")

Dim dtcAnni As New DataColumn("Anni")

dttDati.Columns.Add(dtcNome)

dttDati.Columns.Add(dtcAnni)

dttDati.Columns.Add(dtcValoreStato)

Dim dtrRiga As DataRow = dttDati.NewRow()

dtrRiga("ValoreStato") = 0

dtrRiga("Nome") = "Emanuele"

dtrRiga("Anni") = 34

dttDati.Rows.Add(dtrRiga)

dtrRiga = dttDati.NewRow()

dtrRiga("ValoreStato") = 0

dtrRiga("Nome") = "Mario"

dtrRiga("Anni") = 52

dttDati.Rows.Add(dtrRiga)

dtrRiga = dttDati.NewRow()

dtrRiga("ValoreStato") = 0

dtrRiga("Nome") = "Marco"

dtrRiga("Anni") = 14

dttDati.Rows.Add(dtrRiga)

GrvDati.DataSource = dttDati

GrvDati.DataBind()

ViewState("Dati") = dttDati

End If




End Sub





C#

if (!Page.IsPostBack )

{



DataTable dttDati = new DataTable();

DataColumn dtcValoreStato = new DataColumn("ValoreStato");

DataColumn dtcNome = new DataColumn("Nome");

DataColumn dtcAnni = new DataColumn("Anni");

dttDati.Columns.Add(dtcNome);

dttDati.Columns.Add(dtcAnni);

dttDati.Columns.Add(dtcValoreStato);

DataRow dtrRiga = dttDati.NewRow();

dtrRiga["ValoreStato"] = 0;

dtrRiga["Nome"] = "Emanuele";

dtrRiga["Anni"] =34;

dttDati.Rows.Add(dtrRiga);

dtrRiga = dttDati.NewRow();

dtrRiga["ValoreStato"] = 0;

dtrRiga["Nome"] = "Mario";

dtrRiga["Anni"] = 52;

dttDati.Rows.Add(dtrRiga);

dtrRiga = dttDati.NewRow();

dtrRiga["ValoreStato"] = 0;

dtrRiga["Nome"] = "Marco";

dtrRiga["Anni"] = 14;

dttDati.Rows.Add(dtrRiga);

GrvDati.DataSource = dttDati;

GrvDati.DataBind();

ViewState["Dati"] = dttDati;

}

else

{

DataTable dttDati = (DataTable)ViewState["Dati"];

GrvDati.DataSource = dttDati;

GrvDati.DataBind();

}

Quando si creano le varie righe del controllo gridView, dobbiamo impostare l'immagine che dovrà essere visualizzata. Nell'evento RowDataBound, del controllo gridiView, dobbiamo rilevare i vari oggetti image, e renderli visibili o no, a seconda del valore della prima colonna,



Qui di seguito si riporta un esempio di codice.



VB.Net


Protected Sub GrvDati_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GrvDati.RowDataBound

'visualizzo o no le varie immagini

Try

If e.Row.RowType = DataControlRowType.DataRow Then

Dim chkSelect As CheckBox = CType(e.Row.FindControl("chkSeleziona"), CheckBox)

Dim ImgSi As Image = CType(e.Row.FindControl("ImgAccettato"), Image)

Dim ImgNO As Image = CType(e.Row.FindControl("ImgRifiutato"), Image)

Dim ImgAttesa As Image = CType(e.Row.FindControl("ImgAttesa"), Image)





Dim status As Integer = Integer.Parse((e.Row.Cells(0).Text))



If status = 0 Then

ImgSi.Visible = False

ImgNO.Visible = False

ImgAttesa.Visible = True

ElseIf status = 1 Then

ImgSi.Visible = True

ImgNO.Visible = False

ImgAttesa.Visible = False

chkSelect.Checked = True

ElseIf status = 2 Then

ImgSi.Visible = False

ImgNO.Visible = True

ImgAttesa.Visible = False

chkSelect.Checked = True



End If




End If

Catch ex As Exception

Response.Write(ex.Message)



End Try

End Sub



C#

protected void GrvDati_RowDataBound(object sender, GridViewRowEventArgs e)

{

//visualizzo o no le varie immagini

try

{



if (e.Row.RowType == DataControlRowType.DataRow)

{



CheckBox chkSelect = (CheckBox)e.Row.FindControl("chkSeleziona");

Image ImgSi = (Image)e.Row.FindControl("ImgAccettato");

Image ImgNO = (Image)e.Row.FindControl("ImgRifiutato");

Image ImgAttesa = (Image)e.Row.FindControl("ImgAttesa");



int status = int.Parse(e.Row.Cells[0].Text);



if (status == 0)

{

ImgSi.Visible = false;

ImgNO.Visible = false;

ImgAttesa.Visible = true;


}



if (status == 1)

{

ImgSi.Visible = true;

ImgNO.Visible = false;

ImgAttesa.Visible = false;

chkSelect.Checked = true;


}



if (status == 2)

{

ImgSi.Visible = false;

ImgNO.Visible = true;

ImgAttesa.Visible = false;

chkSelect.Checked = true;


}



}

}

catch (Exception ex)

{

Response.Write( ex.Message);

}

}






Terminato ciò, non ci resta che cambiare i valori nella griglia, in modo che vengano visualizzate le varie immagini.



Nell'evento click del pulsante, cambiamo il valore della prima colonna, per ogni riga, in questo modo, ogni riga avrà un determinato valore.









Protected Sub BtnSi_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnSi.Click



Dim dttDati As DataTable = CType(ViewState("Dati"), DataTable)



dttDati.Rows(0)("ValoreStato") = 1



dttDati.Rows(1)("ValoreStato") = 2



GrvDati.DataSource = dttDati



GrvDati.DataBind()



End Sub






C#



protected void BtnSi_Click(object sender, EventArgs e)



{



DataTable dttDati = (DataTable)ViewState["Dati"];



dttDati.Rows[0]["ValoreStato"] = 1;



dttDati.Rows[1]["ValoreStato"] = 2;



GrvDati.DataSource = dttDati;



GrvDati.DataBind();



}



Conclusioni



Abbiamo visto una delle tante possibilità di come personalizzare il controllo GridView, in particolare visualizzare una colonna di tipo immagine, che indica visibilmente lo stato della riga a cui fa riferimento.



Tramite la parola download è possibile scaricare il file di progetto utilizzato, sia per il linguaggio Visual Basic Net e sia per C#.





Download