当前位置: 代码迷 >> ASP.NET >> GridView显示图片的有关问题
  详细解决方案

GridView显示图片的有关问题

热度:58   发布时间:2013-02-25 00:00:00.0
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这个字段就可以了。 

一般不把一些逻辑操作放到数据库中进行,大部分都放到程序中,因为数据库服务器一旦压力过大就不是很好进行分压,而程序却很容易就可以做一些简单的集群之类的分担压力。
  相关解决方案