【问题标题】:Storing an image map in a database将图像映射存储在数据库中
【发布时间】:2010-04-22 21:09:41
【问题描述】:

我有一个要求,允许内容管理系统中的用户通过 gui 界面创建自己的图像映射,我已经完成了。但是,我不想将图像映射保存到页面代码,而是将图像映射代码保存到数据库 (sql),我也已经完成了。
当我开始走这条路时,我一直在想,我只是在运行时添加“usemap”属性,如下所示,promo1.ImageMap 包含整个地图代码:

if(promo1.HasImageMap) imgPromotion1.Attributes.Add("usemap", promo1.ImageMap);

我想我认为它不够好,因为“usemap”似乎只希望从页面代码中使用现有地图的名称,而不是作为字符串的地图代码。

有人对如何在运行时将地图从数据库应用到图像有任何聪明的想法吗?

【问题讨论】:

    标签: asp.net html


    【解决方案1】:

    您可以在页面上的某处添加一个占位符,并在加载时从表中将图像映射添加到其中,如下所示(请注意,我假设 promo1.ImageMap 是一个包含 整个 图像映射,例如 ):

    placeHolder.Controls.Add(new LiteralControl(promo1.ImageMap));
    

    然后,在您的代码中,确保图像在其 usemap 属性中引用正确的名称:

    if(promo1.HasImageMap) 
        imgPromotion1.Attributes.Add("usemap", "#imageMapName");
    

    (确保在添加属性时引用图像地图名称时使用影线(井号)。)

    【讨论】:

    • 嗨迈克尔 - 基于您的第一条评论和这个带有代码 sn-p 的评论;你让我意识到我是多么想这个。就像你说的......它只是一个字符串。将图像映射名称的新字段添加到对象是一个简单的修复,以便在创建时也将其保存到数据库中。所以我现在拥有的是.. if (_promo1.HasImageMap) { // 注入地图 litImageMaps.Text += _promo1.ImageMap; // 将地图应用到这个图像 imgPromotion1.Attributes.Add("usemap", _promo1.ImageMapName); } 效果很好!谢谢现实的一巴掌。 :-)
    猜你喜欢
    • 2012-10-17
    • 2017-07-24
    • 2011-04-15
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多