Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选中/取消选中复选框时显示/隐藏按钮_C#_Checkbox - Fatal编程技术网

C# 选中/取消选中复选框时显示/隐藏按钮

C# 选中/取消选中复选框时显示/隐藏按钮,c#,checkbox,C#,Checkbox,我使用的是gridview,标题中有一个复选框(名称为“全选”),用于选择项目模板中的所有复选框。当我点击这个复选框时,它会选中项目模板中的所有复选框,并显示删除按钮,删除复选框时会隐藏删除按钮。现在,我想要的是,当我单击全选复选框,然后如果我从项目模板中逐个删除所有复选框,则选中要删除的全选复选框,然后单击删除按钮隐藏。如果我从项目模板中选择一个或多个复选框,则删除按钮将可见,如果我取消选择任何复选框,则删除按钮应可见,直到所有复选框未清除为止 我尝试了这段代码,但没有正常工作。有人能帮我吗

我使用的是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;
    }
}

在“项目模板复选框已更改”功能中,您需要检查其他复选框,以确定当前复选框是否为最后选中的复选框。 大概是这样的:

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

在“项目模板复选框已更改”功能中,您需要检查其他复选框,以确定当前复选框是否为最后选中的复选框。 大概是这样的:

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

这是网络表单吗?如果是这样,您最好使用javascript(jQuery)隐藏和显示按钮,并将复选框标记为选中。这是一个Web表单吗?如果是这样,您最好使用javascript(jQuery)隐藏和显示按钮,并将复选框标记为选中。