图像未动态加载到Gridview中 [英] Image is not loading in the Gridview dynamically

查看:71
本文介绍了图像未动态加载到Gridview中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我需要动态加载gridview中的图像,我使用下面的代码,我无法在gridview中加载图像。请告诉我这个代码出了什么问题。



请找到下面的代码:



Default.aspx文件中的代码



Hi,

I need to load images in the gridview dynamically, I use the below code through which I'm unable to load the images in the gridview. Kindly let me know which went wrong in this code.

Please find the code below:

The code in Default.aspx file

<form id="form1" runat="server">

<div>
<asp:GridView ID="gvImages" runat="server" AutoGenerateColumns="False"

HeaderStyle-BackColor="#7779AF" HeaderStyle-ForeColor="white">
<Columns>
<asp:BoundField HeaderText = "Image Name" DataField="imagename" />
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageID") %>' Height="150px" Width="150px"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>





Default.aspx.cs文件中的代码





The code in Default.aspx.cs file

protected void Page_Load(object sender, EventArgs e)
    {
        
        if (!IsPostBack)
        {
            BindGridData();
        }
    }
   
    /// <summary>
    /// function is used to bind gridview
    /// </summary>
    public void BindGridData()
    {
        
        DataTable dt = new DataTable();
       
        dt.Columns.Add("imagename");
        dt.Columns.Add("ImageID");


        DataRow dr = dt.NewRow();
        dr["imagename"] = "Image1";
        dr["ImageID"] = @"D:\Mathi_Working\01816_Backup\Mathi\Images\9.gif";
        
        dt.Rows.Add(dr);


        DataRow dr1 = dt.NewRow();
        dr1["imagename"] = "Image2";
        dr1["ImageID"] = @"D:\Mathi_Working\01816_Backup\Mathi\Images\HereSmiley.JPG";
        dt.NewRow();
        dt.Rows.Add(dr1);

        gvImages.DataSource = dt;
        gvImages.DataBind();
        gvImages.Attributes.Add("bordercolor", "black");
    }





请告诉我在哪里犯错误。



谢谢&问候,

Mathi。



Kindly let me know where I'm making mistake.

Thanks & Regards,
Mathi.

推荐答案

不要给像这样的图像路径是绝对路径,不会起作用。



Do not give Image path like this is the absolute path and will not work.

dr1["ImageID"] = @"D:\Mathi_Working\01816_Backup\Mathi\Images\HereSmiley.JPG";





这应该是......





This should be a like...

dr1["ImageID"] = @"http://localhost:53734/Mathi/Images/HereSmiley.JPG";


你在Grid View RowBound事件中也可以这样做...找到附加的代码片段



You can do the same in Grid View RowBound event also... find the attached code snippet

protected void grd_listOutsourceRequest_RowDataBound(object sender, GridViewRowEventArgs e)
       {


           if (e.Row.RowType == DataControlRowType.DataRow)
           {
               Image img = new Image();

             img.ImageUrl = "../Images/Blue.png";
                       img.Visible = true;
                       e.Row.Cells[6].Text = "Open";
                       e.Row.Cells[6].Controls.Add(img);


           }


       }


以下代码解决了我的问题



The below code solved my problem

string rootImgPath = ResolveUrl("~/Mathi/Images/");


这篇关于图像未动态加载到Gridview中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆