C#datatable加datagridview变色问题 在datatable里有一字段是"标记"用来记录某条记录是否被处理过。在datagridview里这一列是不会被显示出来的;我想让这个有标记的记录在datagridview里根据"标记"的内容(值0或1)以红色(或其它颜色)显示,如何设置?整行变色或其中的几列变色。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是啊,我也碰到这种问题,之前在ASP写的时候就直接是循环装入表格时去判断,比如有些信息需要核对的就显示一个核对,已核对的就为空,但现在在GridView或其它表格控件中都不知道如何处理 估计得自己写代码判断以前没遇见过。用delph做C/S开发时遇到过,呵呵,比在B/S中简单多了。 放到paint事件,并遍历来设置颜色 private void dg1_Paint(object sender, PaintEventArgs e) { for (int i = 0; i < dg1.Rows.Count; i++) { if(....) dg1.Rows[i].DefaultCellStyle.BackColor = Color.Yellow; } } protected void gridviewid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //control id 是标记列, 我们用hiddenfiled把它放在gridview中 //依 value 值来决定单元格的颜色,1,红色; if ((( HiddenField ) e.Row .FindControl(string ID)).Value .ToString ()=='1') { e.Row.ForeColor = System.Drawing.ColorTranslator.FromHtml("#770077"); } } } private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e){ if (e.RowIndex >= -1) { if (dataGridView1.Rows[e.RowIndex].Cells["RowId"].Value != null) { int v = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["RowId"].Value); if (v %2 == 0) // 偶数行 { e.CellStyle.BackColor = SystemColors.Info; } else { e.CellStyle.BackColor = ControlPaint.LightLight(Color.Yellow); } } }} 加一个隐藏列,记录是否被处理过,再在CellFormatting事件里加以处理 我在.net中做仿凡客网产品图片放大效果,怎么把图片地址改为连接数据库的里面地址? 如何读取文本框中的16进制数,并将其求和 Winfrom TreeView动态加载节点 如何保护自己的软件? Windows服务 高手请进!!! 使用BinaryReader、BinaryWriter类和直接使用底层流对象之间有何区别? 值类型装箱后方法表布局的问题,求助!! 如何使DATAGRID在任何情况下都只选中当前行 哪里有winiso下载? 如何在子窗体中找到父窗体控件 form1.MdiParent = this
用delph做C/S开发时遇到过,呵呵,比在B/S中简单多了。
private void dg1_Paint(object sender, PaintEventArgs e)
{
for (int i = 0; i < dg1.Rows.Count; i++)
{
if(....) dg1.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
}
}
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//control id 是标记列, 我们用hiddenfiled把它放在gridview中
//依 value 值来决定单元格的颜色,1,红色;
if ((( HiddenField ) e.Row .FindControl(string ID)).Value .ToString ()=='1')
{
e.Row.ForeColor = System.Drawing.ColorTranslator.FromHtml("#770077");
}
}
}
{
if (e.RowIndex >= -1)
{
if (dataGridView1.Rows[e.RowIndex].Cells["RowId"].Value != null)
{
int v = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["RowId"].Value);
if (v %2 == 0) // 偶数行
{
e.CellStyle.BackColor = SystemColors.Info;
}
else
{
e.CellStyle.BackColor = ControlPaint.LightLight(Color.Yellow);
}
}
}
}