C# asp:GridView-单击行中任意位置时更改复选框状态
我有一个web应用程序,使用gridview显示一些SQL数据。在GV中,我在第一列中有一个复选框。正如标题中所建议的,当用户单击该行中的任意位置时,我想选中复选框。我怎样才能做到这一点。谢谢 这是我的GVC# 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">
<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 + ".";
}
}