【问题标题】:asp.net Gridview ImageField alternate Imageasp.net Gridview ImageField 备用图片
【发布时间】:2013-11-25 14:14:51
【问题描述】:

我在 gridview 下面有一个与用户 ID 号链接的图像字段。 如果图片不存在于旧的特定字段中,我该怎么办才能获得标准的备用图片?

                <ItemTemplate>
                    <asp:Image ID="MainPic" runat="server" 
                        ImageUrl='<%# GetImageUrl(Eval("PerfilId") as string)%>' />
                </ItemTemplate>

..

    protected string GetImageUrl(string dbImgURL)
    {
        if (File.Exists(dbImgURL))
        {
            return dbImgURL;
        }
        else
        {
            return "AdminFotoUser/UserPics/BGP1.png";
        }
    }

【问题讨论】:

    标签: asp.net gridview imagefield


    【解决方案1】:

    您可以在 GridView 的 onRowDataBound 事件中检查图像路径,如果文件不存在,则将其更改为普通图像。 使用 System.IO;

    if (File.Exists(path)) 
                    {
                        Console.WriteLine("file exists");
                    }
    

    否则 //找到控件并绑定到普通图片上

    或

    你可以用不同的方式重新设计你的网格: - 您可以使用这样的模板列,而不是使用图像字段列: 代码:

    <asp:TemplateField>
        <ItemTemplate>
            <asp:Image runat="server" ID="myImg"
                ImageUrl='<%# GetImageUrl(Eval(col2) as string) %>' />
        </ItemTemplate>
    </asp:TemplateField>
    

    然后在后面的代码中,您创建了一个函数来返回正确的图像 url: 代码: 更新答案

    //Send Image name from database (DataGrid) as dbImgURL
    protected string GetImageUrl(string dbImgURL)
    {
       if (File.Exists(dbImgURL)) 
        {
           return dbImgURL;          
        }
       else
        {
           return "Green.gif";
        }
    }
    

    【讨论】:

    • 谢谢,这正是我想要的。一件事情。如果文件中存在图片,并且我希望 gridview 使用现有图片,我将如何替换 >return "Green.gif"
    • 谢谢你,但我仍然只返回“Green.gif”而不是“如果返回”。 :-)(更新我的问题)
    • @RMU 我不知道你想达到什么目的..它的逻辑很简单..如果没有其他的简单..如果 DataBaseImage 存在然后使用 DataBaseImage ........ >>ELSE 使用绿色 (N/A) 图片
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多