Gridview applicare una colonna di tipo checkbox

Per il sito iprogrammatori  http://www.iprogrammatori.it/articoli/web-marketing/controllo_checkbox_gridview.asp ho scritto un articolo, che riporto qui.

 

Figura 1

Introduzione

In questo articolo, vedremo come applicare in un controllo GridView un checkbox, e selezionare o deselezionare gli elementi di ogni riga.

Dopo aver creato un nuovo progetto web in Visual Studio 2005, inseriamo nella pagina web, un controllo gridview e due pulsanti, come mostra in figura 1.

Impostazione delle colonne del gridView.

Il gridView sarò composto da tre colonne, una di tipo checkbox e due che fanno riferimento ad una fonte dati (colonne di un datatable), nell’intestazione del gridiview, si troverà un checkbox che permette di selezionare e deselezionare tutti gli elementi checkbox di quella pagina.

Di seguito si riporta l’impostazione delle colonne.

 

<

 

Columns

>

 
 

 

 

<asp:TemplateField

>

 
 

 

 

<HeaderTemplate

>

 
 

 

 

<input id=”Seleziona” onclick=”javascript:Seleziona(this);” runat

=”server”

 
 

 

 

type=”checkbox”

/>

 
 

 

 

</HeaderTemplate

>

 
 

 

 

<ItemTemplate

>

 
 

 

 

<asp:CheckBox ID=”chkSeleziona” runat=”server” Text=” “ Width=”18px”

/>

 
 

 

 

</ItemTemplate

>

 
 

 

 

</asp:TemplateField

>

 
 

 

 

<asp:BoundField HeaderText=”Valore A” DataField=”Valore A”

/>

 
 

 

 

<asp:BoundField HeaderText=”Valore B” DataField=”Valore B”

/>

 
 

 

 

</Columns

>

Come mostrato dal codice html, l’evento onClick del controllo checkbox, eseguirà una funzione javascript, la quale seleziona o deseleziona i vari checkbox nel controllo.

Di seguito si riporta il codice della funzione javascript.

<
script language=”javascript”>

 
function

Seleziona(Chkbox){ 
 

var theBox= (Chkbox.type==“checkbox”

) ?Chkbox : Chkbox.children.item[0];
stato=theBox.checked;

elemento=theBox.form.elements;

 

for

(i=0;i<elemento.length;i++) 
if(elemento[i].type==“checkbox”

&&elemento[i].id!=theBox.id)
{

 

if

(elemento[i].checked!=stato)elemento[i].click();
}

}

</
script>

 

Seleziona e deselezina elemento.

Di seguito si riporta il codice in VB.Net e C#. che permette di selezionare e deselezionare gli elementi del controllo gridview.

Questa funzione a differenza della precedente, premette di selezionare e deselezionare gli elementi direttamente dal codice VB.Net e C#.

Codice VB.Net

 
Private Sub Seleziona(ByVal seleziona As Boolean

If (seleziona = True) Then

 
For conta As Integer = 0 To

GridView1.Rows.Count – 1 
Dim ChkDeSeleziona As CheckBox = CType(GridView1.Rows(conta).FindControl(“chkSeleziona”

), CheckBox)ChkDeSeleziona.Checked =
True

 
Next

 
Else

 
For conta As Integer = 0 To

GridView1.Rows.Count – 1 
Dim ChkSeleziona As CheckBox = CType(GridView1.Rows(conta).FindControl(“chkSeleziona”

), CheckBox)ChkSeleziona.Checked =
False

 
Next

 
End If

 
End

Sub 
Codice C#

private
void Seleziona(bool

seleziona){
 

if

(!seleziona){
 

for (int

contatore = 0; contatore < GridView1.Rows.Count; contatore++){
 

CheckBox ChkDeSeleziona = (CheckBox)GridView1.Rows[contatore].FindControl(“chkSeleziona”

);ChkDeSeleziona.Checked =
false

;}
}

 

else

{
 

for (int

contatore = 0; contatore < GridView1.Rows.Count; contatore++){
 

CheckBox ChkSeleziona = (CheckBox)GridView1.Rows[contatore].FindControl(“chkSeleziona”

);ChkSeleziona.Checked =
true

;}
}

}

Per selezionare l’elemento, dovrebbe eseguire la funzione passando come valore true, mentre per deselezionare tali elementi utilizzeremo false.

Di seguito si riporta un esempio di codice.

VB.Net

 

 
Protected Sub BtnSeleziona_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles

BtnSeleziona.Click 
Seleziona(

True

 

End Sub 

 

Protected Sub BtnDeseleziona_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnDeseleziona.Click
Seleziona(

False

End Sub  

C#

protected
void BtnSeleziona_Click(object sender, EventArgs

e){
Seleziona(

true

);}

 

protected
void BtnDeseleziona_Click(object sender, EventArgs

e){
Seleziona(

false

);}
 

Conclusioni:

In questo articolo, si è visto come applicare in un controllo gridiview delle checkbox e permettere la selezione e deselezione sia con il linguaggio VB.Net e sia con C#.

Tramite la parola download è possibile scaricare il file di esempio utilizzato nell’articolo.

Download

 

 

Compact framework utilizzare il controllo notification

Questo esempio di codice illustra come utilizzare un controllo Notification in ambiente windows mobile..

L’esempio di codice riportato qui di seguito, visualizza una notifica, nella quale si trova un controllo checkbox, un controllo combobox , un collegamento ipertestuale per l’invio di un email e due pulsanti (submit ed annulla) .

Il pulsante submit visualizzerà il testo contenuto nella combobox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

using
 

 

System;

using
 

 

System.Collections.Generic;

using
 

 

System.ComponentModel;

using
 

 

System.Data;

using
 

 

System.Drawing;

using
 

 

System.Text;

using
 

 

System.Windows.Forms;

using
 

 

Microsoft.WindowsCE.Forms; 
 

 

namespace
 

 

DeviceNotificaCS{

 

 
 

 

 

public partial class FrmNotifica : Form

{

 

 
 

 

public

FrmNotifica(){
InitializeComponent();

Configurazione();

}

 
 

 

 

private void BtnNotifica_Click(object sender, EventArgs

e){

 

 
 

 

 

//imposto la durata di quanto dovrà rimanere visualizzata

Notification1.InitialDuration = 20;

 

 
 

 

//visualizzo la notifica

Notification1.Visible =
 

 

true

; 
 

 

 

//pulisco la barra di stato

StbStato.Text =
 

 

“”

;}

 

 
 

 

 

void

Configurazione(){

 

 
 

 

 

try

{

 

 
 

 

//Imposto il testo del titolo

Notification1.Caption =
 

 

“Testo del titolo della notifica”

; 
 

 

 

//In caso che è true visualizza un contorno rosso

Notification1.Critical =
 

 

false

; 
 

 

 

//creo un oggetto di tipo testo, che poi sarà visualizzato come pagina web

 
 

 

StringBuilder HTMLString = new StringBuilder

(); 
 

 

 

//Valorizzo tale oggetto con testo html

HTMLString.Append(
 

 

“<html><body>”

);HTMLString.Append(
 

 

 

“<font color=\”#0000FF\”><b>Indirizzo E-mail:</b></font>”

);HTMLString.Append(
 

 

 

“&nbsp;&nbsp;&nbsp;&nbsp;<a href=\”mailto:emanuelemattei@dominio.it\”>E-mail</a>”

);HTMLString.Append(
 

 

 

“<br><form method=\”GET\” action=notifica>”

);HTMLString.Append(
 

 

 

“<SELECT NAME=\”lstbx\”>”

);HTMLString.Append(
 

 

 

“<OPTION VALUE=\”0\”>Città</OPTION><OPTION VALUE=\”1\”>Roma</OPTION>”

);HTMLString.Append(
 

 

 

“<OPTION VALUE=\”2\”>Firenze</OPTION><OPTION VALUE=\”3\”>Milano</OPTION>”

);HTMLString.Append(
 

 

 

“<OPTION VALUE=\”4\”>Palermo</OPTION></SELECT>”

);HTMLString.Append(
 

 

 

“<input type=checkbox name=chkbx>Notifica completata”

);HTMLString.Append(
 

 

 

“<br><input type=’submit’ value=’Ok’>”

);HTMLString.Append(
 

 

 

“<input type=button name=’cmd:2′ value=’Annulla’>”

);HTMLString.Append(
 

 

 

“</body></html>”

); 
 

 

 

//Imposto la proprietà text che conterrà il testo da visualizzare

Notification1.Text = HTMLString.ToString();
}

 
 

 

catch (Exception

ex){

 

 
 

 

 

MessageBox

.Show(ex.Message);}
}

 

 
 

 

 

//l’evento ballonChanged mi indica quando la notifica cambia, ossia se è visualizzata o no (apertura è chiusura)

 
 

 

private void OnBalloonChanged(object obj, BalloonChangedEventArgs

balevent){

 

 
 

 

 

if (balevent.Visible == true

){

 

 
 

 

 

//Cambio il testo del pulsante

BtnNotifica.Text =
 

 

“Notifica2″

;}

 

 
 

 

 

else

{

 

BtnNotifica.Text =
 

 

“Notifica”

;}
}

 

 

 

 
 

 

 

//Evento che si scatena al click del pulsante (ho iperlink)

 
 

 

void OnResponseSubmitted(object obj, ResponseSubmittedEventArgs

resevent){
 

 

 

// Variabile contenente l’eventuale testo

 
 

 

string StrTesto = “”

; 
 

 

 

//Tramite l’oggetto resevent ottengo le informazioni in risposta all’azione eseguitasulla notifica.

 
 

 

if (resevent.Response.Substring(0, 8) == “notifica”

){

 

 
 

 

 

Int32 posizione = Convert

.ToInt32(resevent.Response.Substring(15, 1)); 
 

 

 

switch

(posizione){

 

 
 

 

 

case

0:StrTesto =
 

 

 

“submit”

; 
 

 

 

break

; 
 

 

 

case

1:StrTesto =
 

 

 

“Roma”

; 
 

 

 

break

; 
 

 

 

case

2:StrTesto =
 

 

 

“Firenze”

; 
 

 

 

break

; 
 

 

 

case

3:StrTesto =
 

 

 

“Milano”

; 
 

 

 

break

; 
 

 

 

case

4:StrTesto =
 

 

 

“Palermo”

; 
 

 

 

break

;}

 

 
 

 

 

//Verifico che la checkbox sia valorizzata

 
 

 

if (resevent.Response.EndsWith(“on”

)){

 

StrTesto = StrTesto +
 

 

 

” checkbox = Si”

;}
}

 
 

 

 

else if (resevent.Response == “mailto:emanuelemattei@dominio.it”

){

 

 
 

 

 

//se così fosse avvio il programma di posta elettronica predefinito

System.Diagnostics.
 

 

Process.Start(“mailto:emanuelemattei@dominio.it”, “”

);}

 

 
 

 

 

// visualizzo il messaggio nella barra di stato

StbStato.Text = StrTesto +
 

 

” Valore: “ + resevent.Response.ToString();

 

Tramite la parola download è possibile scaricare il file di esempio

Download

Creare un calendario per Microsoft Access 2007 tramite VBA.

Pubblicato sul sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/creare_calendario_microsoft_access.asp un mio articolo riguardante la programazione Access tramite vba.

In questo articolo, vedremo come creare un calendario da utilizzare nelle maschere di Microsoft Access 2007, tramite codice Visual Basic Application. Il calendario verrà visualizzato al click di un pulsante e visualizzare in una casella di testo, la data selezionata.

 

Figura 1

 

Creazione del database.
Prima di vedere il codice Visual Basic Application, occorre creare il database,  si crea un nuovo database vuoto, fatto ciò dobbiamo creare delle maschere nella quali tramite un pulsante richiama la maschera del calendario, la maschera calendario avrà il compito di inserire la data selezionata in una casella di testo della maschera che ha aperto il calendario.
Si crea un nuova maschera, selezionare la voce di menu crea e poi nella barra degli strumenti, la voce struttura maschera. Questa maschera avrà il compito di visualizzare il calendario.
Come mostrato in figura 2

 

Figura 2

 

Tramite il pulsante inserisci controllo ActiveX, nella finestra che viene aperta (figura 2) selezioniamo la voce “Controllo Calendario 12.0” selezioniamo tale voce e confermiamo tramite il pulsante ok.
Fatto ciò inseriamo due pulsanti, uno per la conferma della data selezionata il quale avrà come testo la dicitura “Conferma”, e l’altro per la chiusura della finestra con la dicitura “Chiudi”, senza che venga riportata la data selezionata. La finestra dev’essere simile come riportata in figura 2.
Terminata la fase per l’impostazione della finestra, scriviamo il codice VBA, che avrà il compito di riportare la data selezionata.
Selezioniamo il pulsante quello  per la chiusura della finestra, e nell’evento click di tale pulsante, inseriamo il seguente codice che permette la chiusura della maschera.
Codice Vba per il pulsante della chiusura:

Private Sub Chiudi_Click()

    On Error GoTo Errore

    DoCmd.Close

    Exit Sub

Errore:

    MsgBox “Si è verificato il seguente errore: ” & Err.Description, vbCritical, “Calendario”

 End Sub

Sempre nell’editor VBA, inseriamo due variabili pubbliche, che avranno il compito di riportare il nome della maschera e del controllo che andrà aggiornato.
Il codice va messo in alto, come mostrato qui di seguito.

Option Compare Database

Public NomeControllo As String

Public NomeMaschera As String

Per l’evento click del pulsante conferma, andrà inserito il codice che avrà il compito di riportare nel controllo della maschera che ha avviato il calendario la data selezionata.
Di seguito si riporta il codice per l’evento click del pulsante di conferma.

Private Sub Conferma_Click()

On Error GoTo Errore

    Dim Data As String

    ‘Rilevo la data

    Data = Calendario.Value

    Dim intConta As Integer

    ‘ciclo per tutte le machere e poi per tutti i controlli

    Dim IntContaMaschere As Integer

    For IntContaMaschere = 0 To CurrentProject.AllForms.Count – 1

        If Application.Forms(IntContaMaschere).Name = NomeMaschera Then

            Dim intContaControlli As Integer

            For intContaControlli = 0 To Application.Forms(IntContaMaschere).Controls.Count – 1

            If Application.Forms(IntContaMaschere).Controls.Item(intContaControlli).Name = NomeControllo Then

                ‘Trova la mashcera e controllo, imposto la data

                Forms(Application.Forms(IntContaMaschere).Name).Controls(Application.Forms(IntContaMaschere).Controls.Item(intContaControlli).Name).SetFocus

                Forms(Application.Forms(IntContaMaschere).Name).Controls(Application.Forms(IntContaMaschere).Controls.Item(intContaControlli).Name).Text = Data

                ‘chiudo la finestra

                DoCmd.Close

                Exit Sub

            End If

            Next intContaControlli

                       

        End If

    Next IntContaMaschere

    ‘chiudo la finestra

    DoCmd.Close

    Exit Sub

 

Errore:

    MsgBox “Si è verificato il seguente errore: ” & Err.Description, vbCritical, “Calendario”

End Sub

Creazione della maschera di esempio.
Terminata la creazione della maschera per la visualizzazione del calendario, non ci resta che creare una maschera di esempio.

 

 

Figura 3
La maschera dovrà avere tre caselle di testo, tre etichette ed un pulsante il quale avrà il compito di richiamare la maschera per la selezione della data. L’aspetto della maschera dev’essere simile a quella illustrata in figura 3.
Di seguito si riporta il codice per l’evento click del pulsante.

Private Sub calendario_Click()

On Error GoTo Errore

 

    ‘apro la maschera calendario

    DoCmd.OpenForm “Calendario”

    ‘imposto le variabili pubbliche con il nome del controllo e della maschera

    Form_Calendario.NomeControllo = Me.txtdata.Name

    Form_Calendario.NomeMaschera = Me.Name

    Exit Sub

 

Errore:

    MsgBox “Si è verificato il seguente errore: ” & Err.Description, vbCritical, “Calendario”

   

End Sub

Conclusioni:
In questo articolo, abbiamo visto come migliorare l’interfaccia grafica delle maschera con un calendario, il tutto tramite il codice Visual Basic Application. Tramite la parola Download è possibile scaricare il file Microsoft Access 2007 di esempio, completo del codice VBA.

Download esempio

Pubblicato in VBA. Tag: . Lascia un commento »