2009-08-20 12 views
1

Ich verwende Gridview und es gibt ein Kontrollkästchen (mit dem Namen Alle auswählen) in der Kopfzeile, um alle Checkboxen in der Elementvorlage auszuwählen. Wenn ich auf dieses Kontrollkästchen klicke, wähle alle Checkboxen in der Artikelvorlage aus und zeige die Schaltfläche zum Löschen an. Wenn ich das Kontrollkästchen entferne, blende die Schaltfläche zum Löschen aus. Nun, was ich will, ist, wenn ich auf das Kontrollkästchen Alles auswählen und dann, wenn ich alle Kontrollkästchen aus den Artikelvorlagen eins nach dem anderen entfernen Sie die Kontrollkästchen alle Kontrollkästchen deaktiviert werden entfernt und die Schaltfläche zum Löschen ausblenden. Wenn ich ein oder mehrere Kontrollkästchen aus der Artikelvorlage anwähle, wird die Schaltfläche zum Löschen sichtbar. Wenn ich ein Kontrollkästchen deaktiviere, sollte die Schaltfläche zum Löschen sichtbar sein, bis alle Kontrollkästchen deaktiviert sind.Schaltfläche ein-/ausblenden beim Aktivieren/Deaktivieren der Checkbox

Ich versuche diesen Code aber nicht richtig funktionieren. Kann mir bitte jemand helfen?

Dieser Code ist im Kontrollkästchen Alle auswählen.

protected void chkSelectAll_CheckedChanged(object sender, EventArgs e) 
    { 
    Button btnDel = (Button)ViewsStudGV.FooterRow.FindControl("btnDel"); 
    CheckBox allchk = (CheckBox)ViewsStudGV.HeaderRow.FindControl("chkSelectAll"); 

    CheckBox chk; 

    foreach (GridViewRow rowItem in ViewsStudGV.Rows) 
    { 
     chk = (CheckBox)(rowItem.Cells[0].FindControl("chkSelect")); 
     chk.Checked = ((CheckBox)sender).Checked; 
     if (chk.Checked == true) 
     { 
      btnDel.Visible = true;     
      allchk.Text = "Select None"; 
     } 
     else 
     { 
      btnDel.Visible = false; 
      allchk.Text = "Select All"; 
     } 
    } 

} 

und dieser Code ist auf Elementvorlage Checkbox

protected void chkSelect_CheckedChanged(object sender, EventArgs e) 
{ 
    CheckBox chk = (CheckBox)ViewsStudGV.FindControl("chkSelect"); 
    Button btnDel = (Button)ViewsStudGV.FooterRow.FindControl("btnDel"); 
    CheckBox allchk = (CheckBox)ViewsStudGV.HeaderRow.FindControl("chkSelectAll"); 

    CheckBox c = (CheckBox)sender as CheckBox; 
    if (c.Checked == true && allchk.Checked==true) 
    { 
     btnDel.Visible = true; 
    } 
    else if(c.Checked == false && allchk.Checked==true) 
    { 
     btnDel.Visible = false; 
    } 
    else if (c.Checked == true && allchk.Checked == false) 
    { 
     btnDel.Visible = true; 
    } 
    else if (c.Checked == false && allchk.Checked == false) 
    { 
     btnDel.Visible = false; 
    } 
} 
+0

Welche Sprache ist das? – Marius

Antwort

1

In Ihrem Artikel Vorlage Checkbox Funktion geändert werden Sie die anderen Kontrollkästchen untersuchen müssen, um zu bestimmen, ob die aktuelle Checkbox die zuletzt geprüft Checkbox ist. Etwas wie dieses:

protected void chkSelect_CheckedChanged(object sender, EventArgs e) 
{ 
    CheckBox c = (CheckBox)sender as CheckBox; 

    Button btnDel = (Button)ViewsStudGV.FooterRow.FindControl("btnDel"); 
    CheckBox allchk = (CheckBox)ViewsStudGV.HeaderRow.FindControl("chkSelectAll"); 

    if(c.Checked == false) 
    { 
     btnDel.Visible = true;     
     allchk.Text = "Select None"; 
    } 
    else 
    { 
     CheckBox chk; 

     foreach (GridViewRow rowItem in ViewsStudGV.Rows) 
     { 
       chk = (CheckBox)(rowItem.Cells[0].FindControl("chkSelect")); 
       chk.Checked = ((CheckBox)sender).Checked; 
     if (chk.Checked == true) 
     { 
      btnDel.Visible = true;     
      allchk.Text = "Select None"; 
      break; 
     } 
     else 
     { 
      btnDel.Visible = false; 
      allchk.Text = "Select All"; 
     } 
    } 
    } 
} 
+0

Ist dies ein Webformular? Wenn es Ihnen besser geht, verwenden Sie Javascript (jQuery), um die Schaltfläche auszublenden und anzuzeigen, und markieren Sie die Kontrollkästchen als aktiviert. – WorthiGe

Verwandte Themen