Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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#_Asp.net_Gridview_Checkbox - Fatal编程技术网

C# 如果选中标题复选框,则所有其他复选框';应在网格视图中选中

C# 如果选中标题复选框,则所有其他复选框';应在网格视图中选中,c#,asp.net,gridview,checkbox,C#,Asp.net,Gridview,Checkbox,我使用了下面的代码,但它不起作用。如果我选中了header复选框,那么所有其他复选框都应该选中,如果选中了复选框,那么如何获取特定的行id protected void headerLevelCheckBox_CheckedChanged(object sender, EventArgs e) { CheckBox headerChkBox = ((CheckBox)gvApproach.HeaderRow.FindControl("headerLevelCheckBox"));

我使用了下面的代码,但它不起作用。如果我选中了header复选框,那么所有其他复选框都应该选中,如果选中了复选框,那么如何获取特定的行id

protected void headerLevelCheckBox_CheckedChanged(object sender, EventArgs e)
{
    CheckBox headerChkBox = ((CheckBox)gvApproach.HeaderRow.FindControl("headerLevelCheckBox"));

    if (headerChkBox.Checked == true)
    {
        foreach(GridViewRow gvRow in gvApproach.Rows)
        {
            CheckBox rowChkBox = ((CheckBox)gvRow.FindControl("rowLevelCheckBox"));

            rowChkBox.Checked = true;//((CheckBox)sender).Checked;       
        }
    }
    else
    {
        foreach (GridViewRow gvRow in gvApproach.Rows)
        {
            CheckBox rowChkBox = ((CheckBox)gvRow.FindControl("rowLevelCheckBox"));
            rowChkBox.Checked = false;
        }
    }        
}
我用的是VS2008,c#


如果不使用javascript..

我建议您不要在服务器上这样做,而是在客户机上这样做。使用javascript。该页面上是否有jQuery(使用该库会更容易)?也许本教程会有所帮助:

我建议您不要在服务器上这样做,而是在客户机上这样做。使用javascript。该页面上是否有jQuery(使用该库会更容易)?也许本教程会有所帮助:

更具体地说,您应该使用

headerChkBox onclick=“更改复选框(此)”


希望它能帮助你更具体地说,你应该使用

headerChkBox onclick=“更改复选框(此)”


希望它有助于

aspx代码…并且为了获得网格视图中特定行的id,我使用labe控件作为PhotoId(PK)


aspx代码…为了获得网格视图中特定行的id,我使用labe控件作为PhotoId(PK)


如果您想使用javascript来实现

您应该使用复选框的工具提示属性来保存记录的ID。 例如:

<asp:CheckBox ID="rowLevelCheckBox" runat="server" ToolTip='<%#Eval("ID")%>' />

然后,当单击标题的复选框时,应该使用javascript代码

<script type="text/javascript">
    function SelectAll(element) {
        if ($(element).attr("checked")) {
            $("input[type=checkbox]").attr("checked", "true");
        }
        else {
            $("input[type=checkbox]").attr("checked", "");
        }
    }
</script>

<HeaderTemplate>
<div style="text-align: center; width: 100px; margin: auto">
<input type="checkbox" name="SelectAllCheckBox" onclick="SelectAll(this)">Select All</div>
</HeaderTemplate>

函数SelectAll(元素){
if($(元素).attr(“选中”)){
$(“input[type=checkbox]”)attr(“checked”、“true”);
}
否则{
$(“input[type=checkbox]”)attr(“checked”,”);
}
}
全选
最后,在代码隐藏中

如果要获取所选ID,可以使用此代码

public List<string> GetAllSelectedIds()
{
    List<string> selectedIds= new List<string>();
    for (int i = 0; i < grid.Rows.Count; i++)
    {
        GridViewRow row = grid.Rows[i];
        if (((CheckBox)row.FindControl("rowLevelCheckBox")).Checked)
        {
            string rowLevelCheckBoxStr = ((CheckBox)row.FindControl("rowLevelCheckBox")).ToolTip;
            selectedIds.Add(rowLevelCheckBoxStr);
        }
    }
    return selectedIds;
}
public List GetAllSelectedIds()
{
List SELECTEDDS=新列表();
对于(int i=0;i
如果您想使用javascript

您应该使用复选框的工具提示属性来保存记录的ID。 例如:

<asp:CheckBox ID="rowLevelCheckBox" runat="server" ToolTip='<%#Eval("ID")%>' />

然后,当单击标题的复选框时,应该使用javascript代码

<script type="text/javascript">
    function SelectAll(element) {
        if ($(element).attr("checked")) {
            $("input[type=checkbox]").attr("checked", "true");
        }
        else {
            $("input[type=checkbox]").attr("checked", "");
        }
    }
</script>

<HeaderTemplate>
<div style="text-align: center; width: 100px; margin: auto">
<input type="checkbox" name="SelectAllCheckBox" onclick="SelectAll(this)">Select All</div>
</HeaderTemplate>

函数SelectAll(元素){
if($(元素).attr(“选中”)){
$(“input[type=checkbox]”)attr(“checked”、“true”);
}
否则{
$(“input[type=checkbox]”)attr(“checked”,”);
}
}
全选
最后,在代码隐藏中

如果要获取所选ID,可以使用此代码

public List<string> GetAllSelectedIds()
{
    List<string> selectedIds= new List<string>();
    for (int i = 0; i < grid.Rows.Count; i++)
    {
        GridViewRow row = grid.Rows[i];
        if (((CheckBox)row.FindControl("rowLevelCheckBox")).Checked)
        {
            string rowLevelCheckBoxStr = ((CheckBox)row.FindControl("rowLevelCheckBox")).ToolTip;
            selectedIds.Add(rowLevelCheckBoxStr);
        }
    }
    return selectedIds;
}
public List GetAllSelectedIds()
{
List SELECTEDDS=新列表();
对于(int i=0;i主题的
你不需要那个如果条件。我得到了答案。谢谢你对主题的回复。你不需要那个如果条件。我得到了答案。谢谢你的回复