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:
Posta un commento