各位老师:
在GridView中如何用图片替换原来数据库字段中的文字,比如字段是“1”“2”“3”则分别用不同的GIF图片对应显示?

解决方案 »

  1.   

    不知道你是要动态的还是半动态的半动态的那就switch-case其实动态的那种用得更多 一般多建张数据表 把那个字段和图片位置关联
    这样更好维护
      

  2.   

    <img src='<%#Eval("字段")%>.gif'>
      

  3.   

    你把图片名搞成1.gif,2.gif......
    假如你图片的路径是path
    然后在绑定private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    里写
    if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
    ((Image)e.Item.Cells[0].FindControl("ImageID")).ImageUrl = this.Server.MapPath("path" + e.Item.Cells[1].Text + ".gif") ;
    }
    以上假设是你的Iamge在datagrid第一列,你那个什么1 2 3 4..在第2列,如果不要出现那个1 2 3 4 把第二列隐藏就可以鸟
      

  4.   

    各位老师,本人刚开始玩这个咚咚,有很多地方不会我把当前的代码写在下面,我该如何用各位老师给的方法修改,请老师直接写代码,给您添麻烦了
    代码如下                
    </asp:BoundField>
                    <asp:BoundField DataField="状态" HeaderText="状态" SortExpression="状态" >
                        <ItemStyle HorizontalAlign="Center" />
      

  5.   

    <img src='<%#Eval("字段")%>.gif'>
    就是用这个最简单是。把不同装态图片命名为1,2,3,....直接绑定上就行了是。
      

  6.   

    你绑定你数据库的字段到一个列,再建一个模板列,放Image控件
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
      swtch(e.Item.Cells[你绑定的列])
      {
         ((Image)e.Item.Cells[你图片的列数].FindControl("ImageID")).ImageUrl = “你图片的路径” ;
      }
    }
      

  7.   

    也可以在摸版列里使用自定义方法<%#ShowPic(Eval("xx字段"))%>public string ShowPic(string x)
    {
    //判断处理
     return "<img src=...";
    }
      

  8.   

    我给你一个把软件做大的建议:1. 你可以在工程中选择增加一个用户控件文件,假设其名叫做“我的控件.ascx”。2. 在其中拖入一个image控件。3. 写上代码:
        private int _num;    public int Num
        {
            set
            {
                _num = value;
            }
        }    protected override void OnPreRender(EventArgs e)
        {
            this.Image1.ImageUrl = "~/images/test" + _num.ToString() + ".jpg";
            base.OnPreRender(e);
        }4. 回到你的页面。在GridView中你要自由处理的这一列转换为模板列。5. 编辑模板,从工程列表中把“我的控件.ascx”拖入。6. 看你的GridView的代码,你可以看到:
         <ItemTemplate>
            <uc1:我的控件 ID="我的控件1" runat="server" Num="1" />
         </ItemTemplate>
    此时你可以给我的控件的Num榜定数字。注意,使业务逻辑中的数字,而不是图片路径。路径是在控件中才自己生成的。
    这并不比上面直接在GridView代码中去设计和写最底层的实现复杂多少,我觉得最多多花1分钟时间。实际上,当需求变得复杂的时候,这样做总是很干净利落的,理解和维护都很方便,责任层次清晰。“我的控件.ascx”可以里边可以任意实现,从一个图片,到一个复杂的应用,不论如何实现,都自动插入页面中。对重要的、经常改变、你的程序的亮点的局部插件,完全应该这样先把它独立划分出来单独开发。
      

  9.   

    我是这样做的.public static string Imgurl(object fild)
    {
        //这里做个你的传入值的判断,然后返回这个值得图片所在位置;
    }在模板里加一个html 图片
    <img src='<%# Imgurl(Eval("fild")) %>
    大体意思是这样!