不存在图像时在Gridview中隐藏图像控件

谦卑的

我遇到的一个问题开始使我感到沮丧。我使用gridviews创建了一个非常简单的博客。我还被要求能够上传图片到帖子。我遇到的问题是,如果用户创建的帖子没有图片,则无论如何图像控件都会显示带有红色x的图片。我已经尝试了多种方法,但均未成功。我正在使用自定义处理程序来获取帖子的图像。

ImageHandler.ashx

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dboBlog"].ConnectionString);
    public void ProcessRequest(HttpContext context)
    {
        try
        {
            string messageid = context.Request.QueryString["mid"];

            conn.Open();
            SqlCommand command = new SqlCommand("SELECT Image from BlogImages WHERE Image IS NOT NULL AND MessageID=" + messageid, conn);
            SqlDataReader dr = command.ExecuteReader();

            dr.Read()
            context.Response.BinaryWrite((Byte[])dr[0]);
            conn.Close();
            context.Response.End();
        }
        catch (Exception ex)
        {
            return;
        }
    }

我确实有一个与Post表相关的Images表。如您所见,它使用QueryString并检索MessageID或Posts ID,然后显示图像。

这是我目前在Posts.aspx中用于图像控件的内容。

均价

<asp:Image ID="postImage" runat="server" ImageUrl='<%# "ImageHandler.ashx?mid="+ Eval("MessageID") %>' Width="300px" Height="300px" GenerateEmptyAlternateText="True" />

我在这里尝试过解决方案,在这里尝试过解决方案但对我而言没有成功。我尝试使用Visible属性,仅显示不是“空”而是相同结果的图像。如果我还有其他需要,请告诉我!

编辑:这就是我现在为ImageHandler.ashx

ImageHandler.ashx

// 1x1 transparent GIF
        private readonly byte[] GifData =
        {
            0x47, 0x49, 0x46, 0x38, 0x39, 0x61,
            0x01, 0x00, 0x01, 0x00, 0x80, 0xff,
            0x00, 0xff, 0xff, 0xff, 0x00, 0x00,
            0x00, 0x2c, 0x00, 0x00, 0x00, 0x00,
            0x01, 0x00, 0x01, 0x00, 0x00, 0x02,
            0x02, 0x44, 0x01, 0x00, 0x3b
        };
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dboBlog"].ConnectionString);
    public void ProcessRequest(HttpContext context)
    {
        try
        {
            string messageid = context.Request.QueryString["mid"];

            conn.Open();
            SqlCommand command = new SqlCommand("SELECT Image from BlogImages WHERE Image IS NOT NULL AND MessageID=" + messageid, conn);
            SqlDataReader dr = command.ExecuteReader();

            if (dr.Read())
            {
                context.Response.BinaryWrite((Byte[])dr[0]);
                conn.Close();
                context.Response.End();
            }
            else
            {
                context.Response.ContentType = "image/gif";
                context.Response.Buffer = false;
                context.Response.OutputStream.Write(GifData, 0, GifData.Length);
            }
        }
        catch (Exception ex)
        {
            return;
        }
    }

我确实更新了Win给出的答案所提供的内容。唯一的问题是,gridview确实具有一种样式,即每行在白色和灰色之间交替显示颜色。因此,如果没有图像,则会出现一个白色的框,该框位于灰色的行中。

谦卑的

好的,所以我想出了一个解决方案。我只将一张图片保存到表格中。在插入时,它要么插入图像,要么如果没有插入图像,则插入“ NULL”。然后,我检查该表是否具有空图像,如果有,则禁用图像控件。我将以下内容放在Page_Load中。

背后的C#代码

if (Page.IsPostBack || !Page.IsPostBack)
            {
                foreach (GridViewRow allrows in gvPosts.Rows)
                {
                    string messageid = ((Label)allrows.FindControl("lblMessageID")).Text;
                    Image image = ((Image)allrows.FindControl("postImage"));

                conn.Open();
                SqlCommand checkNullImage = new SqlCommand("SELECT Image FROM BlogMessages WHERE MessageID=" + messageid, conn);
                nullImage = Convert.ToString(checkNullImage.ExecuteScalar());

                if (nullImage == DBNull.Value.ToString())
                {
                    image.Visible = false;
                }

                conn.Close();
            }

这是最好的方法吗?我不确定,但是它能正常工作,并且由于我一次只显示10条帖子,因此它很快就可以工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OpenTBS-不存在时隐藏图像

来自分类Dev

仅当图像不存在时如何下载图像?

来自分类Dev

src不存在时如何保存图像大小?

来自分类Dev

“图像“ pyimage2”不存在”?

来自分类Dev

jQuery onLoad现在不存在图像

来自分类Dev

Firebase 图像对象不存在?

来自分类Dev

Android - 当 url 图像 jpg 不存在时如何显示本地默认图像?

来自分类Dev

如果图像不存在,Opera将显示损坏的图像

来自分类Dev

如果加载的图像不存在,如何显示默认的“图像”?

来自分类Dev

TK | 制作TTK样式时,图像“ pyimage1”不存在

来自分类Dev

提供不存在的图像URI时如何处理BitmapImage?

来自分类Dev

当图像不存在时崩溃保存我的个人资料iOS

来自分类Dev

当路径不存在时,如何修复应包含图像的gridcontrol单元?

来自分类Dev

当本地存储上不存在文件时,毕加索显示错误图像

来自分类Dev

控件不存在时的Asp.Net .findcontrol()

来自分类Dev

尽管“ .plist”文件中不存在CFBundleIcons,但“图像路径无效”

来自分类Dev

Container.php类图像中的ReflectionException不存在以进行干预

来自分类Dev

“。无效的图像路径”,尽管.plist文件中不存在CFBundleIcons

来自分类Dev

Imageview显示源图像中不存在的照片周围的边框

来自分类Dev

在用户输入不存在时隐藏元素

来自分类Dev

相机拍摄的文件不存在android图像

来自分类Dev

如果源不存在,如何显示默认图像

来自分类Dev

如何解决SLIR图像不存在的问题?

来自分类Dev

如果图像元素的源文件不存在,如何删除

来自分类Dev

PM:休眠图像不存在或无法加载

来自分类Dev

添加了图像字段,获取OperationalError:列不存在

来自分类Dev

如何断言(删除)路径-图像组合不存在

来自分类Dev

如果图像元素的源文件不存在,如何删除

来自分类Dev

如果关联的iframe中的链接不存在,则隐藏按钮

Related 相关文章

  1. 1

    OpenTBS-不存在时隐藏图像

  2. 2

    仅当图像不存在时如何下载图像?

  3. 3

    src不存在时如何保存图像大小?

  4. 4

    “图像“ pyimage2”不存在”?

  5. 5

    jQuery onLoad现在不存在图像

  6. 6

    Firebase 图像对象不存在?

  7. 7

    Android - 当 url 图像 jpg 不存在时如何显示本地默认图像?

  8. 8

    如果图像不存在,Opera将显示损坏的图像

  9. 9

    如果加载的图像不存在,如何显示默认的“图像”?

  10. 10

    TK | 制作TTK样式时,图像“ pyimage1”不存在

  11. 11

    提供不存在的图像URI时如何处理BitmapImage?

  12. 12

    当图像不存在时崩溃保存我的个人资料iOS

  13. 13

    当路径不存在时,如何修复应包含图像的gridcontrol单元?

  14. 14

    当本地存储上不存在文件时,毕加索显示错误图像

  15. 15

    控件不存在时的Asp.Net .findcontrol()

  16. 16

    尽管“ .plist”文件中不存在CFBundleIcons,但“图像路径无效”

  17. 17

    Container.php类图像中的ReflectionException不存在以进行干预

  18. 18

    “。无效的图像路径”,尽管.plist文件中不存在CFBundleIcons

  19. 19

    Imageview显示源图像中不存在的照片周围的边框

  20. 20

    在用户输入不存在时隐藏元素

  21. 21

    相机拍摄的文件不存在android图像

  22. 22

    如果源不存在,如何显示默认图像

  23. 23

    如何解决SLIR图像不存在的问题?

  24. 24

    如果图像元素的源文件不存在,如何删除

  25. 25

    PM:休眠图像不存在或无法加载

  26. 26

    添加了图像字段,获取OperationalError:列不存在

  27. 27

    如何断言(删除)路径-图像组合不存在

  28. 28

    如果图像元素的源文件不存在,如何删除

  29. 29

    如果关联的iframe中的链接不存在,则隐藏按钮

热门标签

归档