一个复选框控制gridView里的复选框是否全选,同时要改变一下选中了的行的颜色怎么实现?(全选效果已实现)
protected void chkAllUser_CheckedChanged(object sender, EventArgs e)
{
if (chkAllUser.Checked)
{
foreach (GridViewRow row in grvUser.Rows)
{
CheckBox userbox = row.FindControl("chkUser") as CheckBox;
userbox.Checked = true;
row.BackColor = Color.FromName("#F5A300");
} }
else
{
foreach (GridViewRow row in grvUser.Rows)
{
CheckBox userbox = row.FindControl("chkUser") as CheckBox;
userbox.Checked = false;
}
}
}
protected void chkAllUser_CheckedChanged(object sender, EventArgs e)
{
if (chkAllUser.Checked)
{
foreach (GridViewRow row in grvUser.Rows)
{
CheckBox userbox = row.FindControl("chkUser") as CheckBox;
userbox.Checked = true;
row.BackColor = Color.FromName("#F5A300");
} }
else
{
foreach (GridViewRow row in grvUser.Rows)
{
CheckBox userbox = row.FindControl("chkUser") as CheckBox;
userbox.Checked = false;
}
}
}
{
if (chkAllUser.Checked)
{
foreach (GridViewRow row in grvUser.Rows)
{
CheckBox userbox = row.FindControl("chkUser") as CheckBox;
userbox.Checked = true;
row.BackColor = Color.FromName("#F5A300"); 要在dataBound事件里才起作用,所以改变颜色怎么完成?
} }
else
{
foreach (GridViewRow row in grvUser.Rows)
{
CheckBox userbox = row.FindControl("chkUser") as CheckBox;
userbox.Checked = false;
}
}
}
假定CheckBox在第0列,id是CheckBox1
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox myC = (CheckBox)e.Row.Cells[0].FindControl("CheckBox1");
e.Row.Attributes.Add("id", "tr" + e.Row.RowIndex.ToString());
myC.Attributes.Add("onclick", "ChangeColor(" + myC.ClientID + ",tr" + e.Row.RowIndex.ToString() + ");");
}
}js代码:
<script type="text/javascript">
function ChangeColor(obj,tr)
{
if(obj.checked)
{
tr.style.backgroundColor='#adff2f';
}
else
{
tr.style.backgroundColor='#f5F5F5';
}
}
</script>