2009-08-20 309 views
1

我正在使用gridview,并且在标题中有一个复选框(名称全选)来选择项目模板中的所有复选框。当我点击这个复选框时,选中项目模板中的所有复选框,并显示删除按钮,在删除时勾选它隐藏删除按钮。现在,我想要的是,当我点击全选复选框,然后如果我从项目模板中逐个删除所有复选框,选择所有复选框检查将被删除,删除按钮将隐藏。如果我从项目模板中选择一个或多个复选框,则删除按钮将变为可见,并且如果我取消选中任何复选框,那么删除按钮应该可见并且除非所有复选框未被清除。显示/隐藏按钮选择/取消选中复选框

我尝试这段代码,但无法正常工作。有人可以帮我吗?

此代码位于全选复选框上。

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"; 
     } 
    } 

} 

这个代码是关于项目模板复选框

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

这是什么语言? – Marius 2009-08-20 16:51:26

回答

1

在您的项目模板复选框改变你需要检查其他复选框来确定当前的复选框,最后选中的复选框功能。 类似这样的:

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

这是一个网络表格吗?如果你使用javascript(jQuery)隐藏和显示按钮并将复选框标记为选中状态会更好。 – WorthiGe 2009-08-20 17:21:06

相关问题