mercoledì 14 maggio 2008

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



Nessun commento: