我有一个datagridview
,其中一个模板字段为Checkboxes,用于asp.net应用程序中的每一行。我在PageLoad
事件中运行此代码。当一个人检查任何一行上的方框时,Backcolor或Forecolor的行应突出显示为黄色,但它不起作用。这是我的代码:
foreach (GridViewRow row in gvSummary.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("chkitemSelector");
if (cb != null && cb.Checked)
{
row.BackColor = Color.Yellow;
}
}
我该如何做到这一点?
答案 0 :(得分:0)
如果您想在客户端执行此操作,则无需Page_Load事件。 相反,你应该使用Javascript或更好的建议JQuery
看看这些:
答案 1 :(得分:0)
在页面后面的asp.net代码中处理它应该在用户选择他/她的复选框后,通过单击按钮或...来回发到服务器。 你不能使用row_databinding或page_load。 您可以将代码放在Button的点击事件(或导致回发的任何其他控件)中
哦,顺便说一句,你可以使用Asp.net AJAX updatePanel(虽然我不推荐它)
答案 2 :(得分:0)
protected void GvdAccessorie_RowDataBound(object sender, GridViewRowEventArgs e)
{
CheckBox chkActive = e.Row.FindControl("chkselect") as CheckBox;
if (null != chkActive)
{
bool IsVisible = chkActive.Checked;
e.Row.BackColor = Color.Blue;
if (!IsVisible)
e.Row.BackColor = Color.White;
}
}
答案 3 :(得分:0)
试试这个
row.BackColor = System.Drawing.Color.Yellow;
答案 4 :(得分:0)
这对我有用! row.BackColor属性工作正常!
CheckBox chk = (sender as CheckBox);
if (chk.ID == "chkAll")
{
foreach (GridViewRow row in gdvGroupInfo.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
row.Cells[0].Controls.OfType<CheckBox>().FirstOrDefault().Checked = chk.Checked;
string hex = "#337ab7";
row.BackColor = System.Drawing.ColorTranslator.FromHtml(hex);
row.Font.Bold = true;
row.ForeColor = Color.White;
}
else
{
row.BackColor = System.Drawing.Color.White;
row.ForeColor = Color.Black;
}
}
}
答案 5 :(得分:0)
在gridview的复选框中尝试添加checked_changed, 设置checkbox1的属性值:AutoPostBack =“ True”
Protected Sub checkbox1_CheckedChanged(sender As Object, e As EventArgs)
Dim ID As CheckBox = CType(sender, CheckBox)
Dim row As GridViewRow = TryCast((TryCast(sender, CheckBox)).Parent.Parent, GridViewRow)
Dim hex As String
If ID.Checked = True Then
hex = "#fff8d8"
Me.GridView1.Rows(row.RowIndex).BackColor = System.Drawing.ColorTranslator.FromHtml(Hex)
Else
hex = "#ffffff"
Me.GridView1.Rows(row.RowIndex).BackColor = System.Drawing.ColorTranslator.FromHtml(Hex)
End If
End Sub
与此相关,当复选框处于选中状态或未选中状态时,我可以更改gridview行的颜色