现在一DataGrid的模板列中,有一个asp:Image控件,我想设置它的ImageUrl值,路径如何来做???
问题如下:
1、我实际的图片存于Face/01.gif,在数据库中对应字段存的值为01.gif(因有其它需要故这样只存文件名),我如何在页面中设置它的路径,我这样无法显示
ImageUrl='Face/<%# DataBinder.Eval(Container.DataItem,"字段名")%>'
我另一解决办法是在ItemDataBound事件中来设置它,但发现在
((Image)e.Item.FindControl("imgFace")).ImageUrl=.....;这样出类型转换错误,Image为不明确引用??是何原因。2、我模板列中还有一个Label,他的值在数据库中没直接的值,需通过取出的一个字段值,经过几步计算后,得出最终的值,这样在页面如何来绑定 <%#...%>这样肯定不行了,那如何来做呢????在线等,解了就给分了不够说一声,另开帖再加

解决方案 »

  1.   

    对于一:你在图片上传时会有一个路径,我在文件路径截取时就截取到Face/01.gif了。
    对于二:在后台从数据库取出值经过转换计算,最后lable.text=就行了。
      

  2.   

    楼上的,对于一,数据库中的图片字段值前不能加路径的,只能放图片文件名,因我多处引用这个值的。对于二,Label的情况是在 DataGrid的模板列中的,而且是在DataItemBound事件中进行处理的,所以不能直接Label.Text=..,这样是不行的望各位继续给解呀。。
      

  3.   

    -.((Image)e.Item.FindControl("imgFace")).ImageUrl=.....;
    应该是((System.Web.UI.WebControls.Image)e.Item.FindControl("imgFace")).ImageUrl=.....;
    //因为和System.Drawing.Image有冲突了
      

  4.   

    二.DataItemBound中。。:
    if (e.Item.FindControl("Label1")!=null)
    {
    string aaaaaaa= "slkdfs;dkf;sldkf";
    ((Label)(e.Item.FindControl("Label1"))).Text = aaaaaaa;
    }
      

  5.   

    TO:sprc_lcl(cool一生)
    谢了,你的方法正确,给你分了。。另外,还有一点没解明白:如果是
    ImageUrl='Face/<%# DataBinder.Eval(Container.DataItem,"字段名")%>'  这样就不对,我要是想这样来写的话,这个ImageUrl=.....  该如何写.
    因这地方不需要在事件中再设一次,像上面直接写为何不行,格式应该是怎样的(以前这样用过,好久了,忘了,又找不到以前的例子了。)请继续说下。。谢了。
      

  6.   

    这个我不明白,我绑定时都是在CS中Item绑定的。。
      

  7.   

    ImageUrl='Face/<%# DataBinder.Eval(Container.DataItem,"字段名")%>'
    下面这么写试试
    ImageUrl=<%# "face/"+DataBinder.Eval(Container.DataItem,"字段名")%>
      

  8.   

    试试
    ImageUrl=<%# DataBinder.Eval(Container.DataItem,"字段名","Face/{0}")%>
      

  9.   

    你应该可以都在itemdatabound事件里面写代码,隐藏两个绑定列分别对应图片名和lalbe对应的数据库字段值
    然后if(e.item.itemindex>=0)
    {
       string ppname = e.item.cells[i].text.trim();
       string pplabel = e.item.cells[j].text.trim();
       Image mypp= (Image)e.item.cells[i].findcontrol("imageid");
       Label mylbl = (Label)e.item.cells[i].findcontrol("labelid");
       
       Image.ImageUrl =....
       Label.Text =...
    }