这个我做过,先加个摸版列,放上HyperLink控件
DataGrid里加了一列绑定列,然后在ItemTemplate里加了HyperLink控件。表中有一个字段state,如果state=1时,HyperLink显示。state=0时,Image不显示。在ItemDataBound事件里做//假设第一列绑定state,第2列为模板列
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
if ( e.Item.Cells[0].Text.Trim() != "1" )
{
((HyperLink)e.Item.Cells[1].FindControl("HyperLink1")).Visible = false;
}
}
}

解决方案 »

  1.   

    <script runat="server">
           String GetProperGifFile(bool OutSign)
               {
              if (!OutSign )
                return "images/folder.gif";
            return "images/folderopen.gif";
                
               }
                String GetProperGifFile2(bool BadSign)
               {
              if (!BadSign )
                return "images/ok.gif";
            return "images/cncl.gif";
                
               }
    </script><ItemTemplate>
    <FONT face="宋体">
    <asp:Image id=Image3 runat="server" imageurl='<%# GetProperGifFile((bool)DataBinder.Eval(Container.DataItem, "OutSign")) %>'>
    </asp:Image>
    </FONT>
    </ItemTemplate>脚本放在<head></head>中
      

  2.   

    不好意思不是visible=false
    现在你的问题只要把HyperLink的imageurl换不同的路径就好了
      

  3.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=F73EF6AD-6878-4748-B963-5181252E5AED
    换成图片即可
      

  4.   

    谢谢各位,找到方法了,这个办法更简单
    <asp:TemplateColumn>
    <ItemStyle Width="4%"></ItemStyle>
    <ItemTemplate>
    <asp:Image Runat="server" ID="Image1" ImageUrl='<%# (DataBinder.Eval(Container.DataItem, "IsPrime").ToString() =="1") ? "../Common/img/forum_essential.gif" : "../Common/img/forum_new.gif"%>'/>
    </ItemTemplate>
    </asp:TemplateColumn>