GridView显示图片的问题
数据库中有一个字段Status,有4种结果:R,Y,G,E
我想在绑定显示的时候R就对应了红图片,Y-->黄图片,G-->绿图片,E-->黑图片
请问,如何在前台实现?
另外问一句,如果在Search时在SQL中就when'R' then 'path',用这种方法和在前台实现哪一种效率高?
除了这两种有没有更好的方法??
------解决方案--------------------加载页面后遍历GRIDVIEW中Status的值来循环替换掉不行吗?
------解决方案--------------------我觉得你可以这样在sql中多加一个字段例如:select field1,Status,'img' as StatusImg from table1
然后在把数据取到DataSet中循环dataset
foreach(DataRow row in dataset.Tables[0].Rows)
{
if(row["Status"].ToString() == "R")
{
row["StatusImg"] = "红色图片地址";
}
}
然后你在前台绑定StatusImg这个字段就可以了。
一般不把一些逻辑操作放到数据库中进行,大部分都放到程序中,因为数据库服务器一旦压力过大就不是很好进行分压,而程序却很容易就可以做一些简单的集群之类的分担压力。
------解决方案--------------------
RowDataBound事件中
C# code
if(e.Row.RowType == DataControlRowType.DataRow)
{
string str = e.Row.Cells[你的status那列的索引].Text;
switch(str)
{
case "R":
....
break;
case "Y":
...
break;
下边的我就不写了
}
}
------解决方案--------------------
我觉得你可以这样在sql中多加一个字段例如:select field1,Status,'img' as StatusImg from table1
然后在把数据取到DataSet中循环dataset
foreach(DataRow row in dataset.Tables[0].Rows)
{
if(row["Status"].ToString() == "R")
{
row["StatusImg"] = "红色图片地址";
}
}
然后你在前台绑定StatusImg这个字段就可以了。
一般不把一些逻辑操作放到数据库中进行,大部分都放到程序中,因为数据库服务器一旦压力过大就不是很好进行分压,而程序却很容易就可以做一些简单的集群之类的分担压力。