目前的情况:jpg图片放在一共享文件夹里,共享路径如:\\127.0.0.1\image\
GridView对应的数据源有一个字段存储的相应的图片完整路径,如:\\127.0.0.1\image\123.jpg现在想实现,点击GridView一个某行自定义列时,在边上的image控件能根据给定的图片完整路径把图片显示出来<asp:TemplateField HeaderText="图片"><ItemTemplate>
                                   <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/search.gif" OnClick="ShowImage_Click" />          
                                    </ItemTemplate>
                                 </asp:TemplateField>后台代码:
protected void ShowImage_Click(object sender, GridViewRowEventArgs e)
    {
        if (System.IO.File.Exists(Convert.ToString(DataBinder.Eval(e.Row.DataItem, "imgurl"))) == true)
        {
            Image1.ImageUrl = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "imgurl"));
            Image1.DataBind();
        }
        else
        {
            Image1.ImageUrl = "";
            Image1.DataBind();
        }
    }但是这样写有问题!请各位不吝赐教!谢谢啦!

解决方案 »

  1.   


    就只是点击显示?那方法很多啊你可以先就放在一个Image的ImageUrl里Visible设为false点击用FindControl找到Image控件,改变其Visilble也可以把图片路径先放在一个隐藏中,点击,先FindControl这个路径控件,得到值,
    然后用FindControl找到展示控件,赋值就可以了
      

  2.   

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                DataKeyNames="id"  Width="402px"   ShowFooter="true" >
                <Columns>
                  <asp:TemplateField >
                       <HeaderTemplate>Product</HeaderTemplate>
                       <ItemTemplate><%#Eval("Product") %></ItemTemplate>
                  </asp:TemplateField>
                    <asp:TemplateField >
                        <HeaderTemplate>Version</HeaderTemplate>
                        <ItemTemplate> 
                        <asp:HiddenField  ID="hfUrl" runat="server" Value="<%#Eval("imgUrl")%>">"/>
                        <asp:ImageButton ID="ImageButton1"  runat="server" ImageUrl="~/Images/search.gif" OnClick="ShowImage_Click" />   
                        </ItemTemplate>
                   </asp:TemplateField>
                     <asp:TemplateField >
                        <HeaderTemplate>Version</HeaderTemplate>
                        <ItemTemplate> <asp:Image ID="test" runat="server" />
                        </ItemTemplate>
                   </asp:TemplateField>
               </Columns>
            </asp:GridView>
    protected void ShowImage_Click(object sender, GridViewRowEventArgs e)
    {
    for (int i = 0; i < GridView1.Rows.Count; i++)
    {
    HiddenField hf = GridView1.Rows[i].Cells[0].FindControl("hfUrl") as HiddenField;
    Image im = GridView1.Rows[i].Cells[0].FindControl("test") as Image;
    im.ImageUrl = "../imaghes/"+hf;
    }
    }差不多就这个原理
      

  3.   

    希望有简练的代码例子!
    最好就是如何获得鼠标点选行的对应imgurl的值(就是图片存放的完整路径),然后把这个值传给
    image1.imageurl,image1刷新就可以显示出来!
      

  4.   

    图片路径先放在一个隐藏中,点击,先FindControl这个路径控件,得到值,
    然后用FindControl找到展示控件,赋值就可以了