怎样让GridView中的时间那一列,将相同的时间显示出一种颜色,另一块相同的时间又显示出一种颜色。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样让GridView中的时间那一列,将相同的时间显示出一种颜色,另一块相同的时间又显示出一种颜色。相关的知识,希望对你有一定的参考价值。

这个时间是从数据库中动态的获取的,某一相同的时间可能有3行也可以有4行数据,

建议:
1、取2-3种颜色进行区分,如红、黄、蓝
2、然后将颜色进行编号黄-0、红-1、蓝-2
3、单独对时间列进行GROUP BY 查询,并循环添加颜色编号
4、将上一步所得的数据表与待呈现数据以【到厂时间】为关联使用 INNER 查询添加颜色编号
5、循环所有 DataGridRow 根据颜色编号更新其背景色追问

可以从第三步开始写一下大概的代码吗?

追答

查询:
SELECT 到厂时间, (ROW_NUMBER() OVER(ORDER BY 到厂时间) % 3) AS '颜色'
FROM tableName GROUP BY 到厂时间 ORDER BY 到厂时间
ps:ROW_NUMBER() 函数需要 SQL2005 以上版本的支持

SELECT t1.整列车数, t1.该矿车数, t1.到厂时间, t2.颜色
FROM table1 AS t1 INNER JOIN (
-- 此处为上面的查询
) AS t2 ON t1.到厂时间 = t2.到厂时间

将该查询返回的数据 利用 SqlDataAdapter.Fill -> DataTable
然后将绑定 DataTable 到 DataGridView
----------------------------------------------------------------
foreach (DataGridViewRow row in dataGridView1.Rows)

Color c = Color.Red;
switch ((int)row.Cells["ColorIndex"].Value)

case 1: c = Color.Yellow; break;
case 2: c = Color.Blue; break;

row.Cells["到厂时间"].Style.BackColor = c;

参考技术A 建议你使用jquery实现。

请问在VS2005中,怎么将gridview中的一列弄为下拉列表框的,可以吗?因为初学,不是很懂,望高手指点谢谢

下拉列表框的时候,GridView处于编辑状态
<EditItemTemplate>
<asp:HiddenField ID="HDFXueli" runat="server" Value=\'<%# Eval("xueli") %>\' />
<asp:DropDownList ID="DDLXueli" runat="server" Width="90px" />
</EditItemTemplate>

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)//绑定下拉框的数据

if (((DropDownList)e.Row.FindControl("DDLXueli")) != null)

DropDownList ddlxueli = (DropDownList)e.Row.FindControl("DDLXueli");

// 生成 DropDownList 的值,绑定数据
string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
string SqlStr = "SELECT * from xueli";
DataSet ds = new DataSet();

SqlConnection conn = new SqlConnection(connStr);
if (conn.State.ToString() == "Closed") conn.Open();
SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn);
da.Fill(ds, "xueli");
if (conn.State.ToString() == "Open") conn.Close();

ddlxueli.DataSource = ds.Tables[0].DefaultView;
ddlxueli.DataTextField = "description";
ddlxueli.DataValueField = "code";
ddlxueli.DataBind();
//

// 选中 DropDownList
ddlxueli.SelectedValue = ((HiddenField)e.Row.FindControl("HDFXueli")).Value;
//

参考技术A 可以的。在编辑列的时候将该列指定为模板列,然后你可以在定义的模板列里写入你要加入的控件。比如你的dropdownlist 参考技术B 可以加一个tempfiled这个模板列,然后编辑模板,在模板里添加下拉列表dropwnlist这个控件

以上是关于怎样让GridView中的时间那一列,将相同的时间显示出一种颜色,另一块相同的时间又显示出一种颜色。的主要内容,如果未能解决你的问题,请参考以下文章

Gridview自动生成的选择、更新、删除按钮那一列怎么设置宽度?

C#.net怎样判断gridview中某一列的是不是为空

请问在VS2005中,怎么将gridview中的一列弄为下拉列表框的,可以吗?因为初学,不是很懂,望高手指点谢谢

asp.net里怎样通过下拉框改写Gridview某一列的值

dev控件中Gridcontrol的columnEdit怎样用代码绑定

access数据库中怎么将输入的日期让他显示成星期?