C# asp:GridView-单击行中任意位置时更改复选框状态

C# asp:GridView-单击行中任意位置时更改复选框状态,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个web应用程序,使用gridview显示一些SQL数据。在GV中,我在第一列中有一个复选框。正如标题中所建议的,当用户单击该行中的任意位置时,我想选中复选框。我怎样才能做到这一点。谢谢 这是我的GV <asp:GridView ID="myGV" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" OnRowDataBound="myGV_OnRowDataBound">

我有一个web应用程序,使用gridview显示一些SQL数据。在GV中,我在第一列中有一个复选框。正如标题中所建议的,当用户单击该行中的任意位置时,我想选中复选框。我怎样才能做到这一点。谢谢

这是我的GV

<asp:GridView ID="myGV" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
            OnRowDataBound="myGV_OnRowDataBound">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="myCB" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
编辑:

我在GridView中添加了“OnSelectedIndexChanged”和“OnSelectedIndexChanged”,然后尝试了这个方法(如Ravi所建议的),但无法让它工作

protected void myGV_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e)
{
    GridViewRow row = myGV.Rows[e.NewSelectedIndex];

    CheckBox chk = (CheckBox)myGV.FindControl("cbIzpis");

    if (chk.Checked == true)
    {
        chk.Checked = false;
    }
    else if (chk.Checked == false)
    {
        chk.Checked = true;
    }
}

protected void myGV_SelectedIndexChanged(Object sender, EventArgs e)
{
    GridViewRow row = nyGV.SelectedRow;
}

您可以将GridView.SelectedRow属性与SelectedIndexChanged事件一起使用


它不起作用(我用我尝试过的代码编辑了这个问题。你能检查一下你是否看到了问题吗?没有错误。当我单击任何一行时,都没有发生任何事情。没有错误或任何事情。你尝试在Gridview中设置autogenerateselectbutton=true。当我在这里检查时,它正在工作。很抱歉,正在处理其他事情,因此无法尽快答复。没有问题,即使我找不到方法为了让它工作起来,这只是一个额外的功能。:)Thanx感谢您的帮助,我会在时间不多的时候尝试实现它。
protected void myGV_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e)
{
    GridViewRow row = myGV.Rows[e.NewSelectedIndex];

    CheckBox chk = (CheckBox)myGV.FindControl("cbIzpis");

    if (chk.Checked == true)
    {
        chk.Checked = false;
    }
    else if (chk.Checked == false)
    {
        chk.Checked = true;
    }
}

protected void myGV_SelectedIndexChanged(Object sender, EventArgs e)
{
    GridViewRow row = nyGV.SelectedRow;
}
 void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e)
  {

    // Get the currently selected row using the SelectedRow property.
    GridViewRow row = CustomersGridView.SelectedRow;
    MessageLabel.Text = "You selected " + row.Cells[2].Text + ".";

  }

  void CustomersGridView_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e)
  {

    // SelectedIndexChanging event occurs before the select operation in the GridView control, the
    // SelectedRow property cannot be used. Instead, use the Rows collection
    // and the NewSelectedIndex property of the e argument passed to this 
    // event handler.
    GridViewRow row = CustomersGridView.Rows[e.NewSelectedIndex];
    // here you can check the checkbox, by accessing it in template column using findControl method 
     CheckBox chk = (CheckBox) CustomersGridview.FindControl("chkboxID"); 
    chk.checked;    


    if (row.Cells[1].Text == "SomeCondition")
    {

      e.Cancel = true;
      MessageLabel.Text = "You cannot select " + row.Cells[2].Text + ".";

    }

  }