在asp.net c中动态添加图像<img src="“?”"/>

时间:2011-12-03 02:47:01

标签: asp.net html c#-4.0

我有一个图书数据库,我有书籍信息。我有一行存储了我要在页面上显示的图书的图片名称。例如cprog.jpeg

现在,我想将该名称附加到src以显示图片。但是,它只显示名称本身。我不太清楚该怎么做。

 + " <img src=\"{0} \">" + row[8].ToString() + "</div>"

这是完整的代码..

foreach (DataTable table in dsgrid2.Tables)
            {
                foreach (DataRow row in table.Rows)
                {
                    strBooksInCategory +=
                          "<div style=\"height:150px;\">"

                          + " <img src=\"{0} \">" + row[8].ToString() + "</div>"
                        + "  <div style=\"height:110px;float:left;padding-left:10px;\">"
                        + "   <div style=\"height=auto;left-margin:10px;\">" + row[0] + "</div>"
                        + "   <div style=\"height=auto;left-margin:10px;\">" + row[1] + "</div>"
                        + "   <div style=\"height=auto;left-margin:10px;\">" + row[2] + "</div>"
                        + "   <div style=\"height=auto;left-margin:10px;\">" + row[3] + "</div>"
                        + "   <div style=\"height=auto;left-margin:10px;\">" + row[4] + "</div>"
                        + "   <div style=\"height=auto;left-margin:10px;\">" + row[5] + "</div>"
                        + " </div>"
                        + "</div>";
                    strBooksInCategory += "<div style=\"height:10px;width=100%;\"></div>";

3 个答案:

答案 0 :(得分:1)

你做了几件非常错误的事情:

  1. 不要连接这样的字符串。改为使用StringBuilder类。
  2. 甚至不要通过连接字符串来构建HTML。它产生了非常难以维护的代码。如果我在一个我负责的项目中看到它,我会告诉你立即修复它。如果我在一个我不负责的项目中看到它,我会请你的主管告诉你立即解决它。
  3. 请了解如何使用数据绑定控件,例如Repeater控件!
  4. 如果数据库只包含名称,并且名称是URL的一部分,那么您需要形成完整的URL:

    String.Format("http://mysite.com/images/{0}.jpg", row[8]);
    

答案 1 :(得分:1)

我假设row [8]是你的图像名称...尝试类似

+ "<img src=\""+ row[8].ToString() +"\"></div>"

你也必须放入图像的路径,看起来像

+ "<img src=\"/path/to/image/"+ row[8].ToString() +"\"></div>"

然而......另一个回答者是正确的,这是非常混乱的&amp;只会在以后打破你的心。数据绑定控件是最佳选择,可以在DataGrids和Repeater上阅读......值得您光顾!

答案 2 :(得分:0)

请避免在代码后面构建HTML。代替:

  1. 将所有标记移动到一个aspx文件中,然后移出后面的代码。
  2. 切换为使用控件代替裸html:<asp:Image>用于<img>标记,<asp:Panel>用于<div> s
  3. 使用<asp:Repeater>
  4. 将控件包裹在<ItemTemplate>
  5. 使用数据绑定将DataTable中的值分配给控件的属性