【发布时间】:2012-01-23 11:16:24
【问题描述】:
我有一个 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" />
当鼠标指针悬停在行上时,我使用此代码突出显示该行;
protected void myGV_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#D9ECFB'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;");
}
}
编辑:
我在 GridView 中添加了“OnSelectedIndexChanging”和“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;
}
【问题讨论】: