<Columns>
<asp:TemplateColumn>
<HeaderStyle Width="82px"></HeaderStyle>
<ItemStyle Width="82px"></ItemStyle>
<ItemTemplate>
<img src='pic/<%# MyFunc(DataBinder.Eval(Container.DataItem,"id").ToString())%>.jpg ' width="80px" height="100px">
</ItemTemplate>
</asp:TemplateColumn>Function MyFunc(ByVal id As String) As String
        If File.Exists("pic/" & id & ".jpg") Then
            Return id
        Else
            Return "emptybook"
        End If
    End Function上面datagrid模板列里显示的图片,如果不存在此图片,就显示默认图片emptybook.jpg
结果所有的都是显示emptybook.jpg,为什么啊??? 
是不是这一句写错了,If File.Exists("pic/" & id & ".jpg") Then
 
那要怎么改啊,请高手指教,谢谢!

解决方案 »

  1.   

    File.Exists用到的是物理路径,而你写的是服务器的相对路径,当然都找不到
      

  2.   

    If File.Exists(MapPath("pic/" & id & ".jpg")) Then
      

  3.   

    因为File.Exists要求服务器端的全路径,所以要写成
    If File.Exists(MapPath("pic/" & id & ".jpg")) Then
    不然是不正确的。
      

  4.   

    准确地说应该是服务器的本地路径。不能是URL。
      

  5.   

    sunjian_qi(sonne):从字符串     口.jpg到类型Boolean的强制转换无效,
      

  6.   

    路径的问题,
    If File.Exists(MapPath("pic/" & id & ".jpg")) Then正解
      

  7.   

    sorry,一时大意,写错了。File.Exists改成File.Exists(Server.MapPath("pic/" & id & ".jpg"))
      

  8.   

    那就是你图片地址的问题了...仔细检查地址对不是不是在当前目录的子目录<pic>下面
      

  9.   

    还是路径不对呀,加个reponse.write(Server.MapPath("pic/" & id & ".jpg")),看看输出的路径是不是正确的?