2013-04-02 36 views
0

我想从数据集中使用src通过cs代码制作动态html代码。 (数据集中的每一个项目是另一个图片的SRC)。它是第一次,我试图做这样的事情,并没有工作,任何提示将是有益的:)通过cs代码动态html代码(c#)

HTML代码

<asp:Literal ID="imageGallery" runat="server" /> 

CS(C#)代码

DataSet ds = new DataSet(); 
    ds = DAL.GetBestPics(); 
    imageGallery.Mode = LiteralMode.Encode; 
    string divStart = @"<div class='more-products-holder'><ul>"; 
    imageGallery.Text += divStart; 

    foreach (DataRow item in ds.Tables[0].Rows) 
    { 
     string imageHTML = @"<li><a> 
         <img src='"; 
     string mid = @"" + item.ToString(); 
     string imageHTML2 = @"' /></a></li>"; 
     imageGallery.Text += imageHTML; 
     imageGallery.Text += mid; 
     imageGallery.Text += imageHTML2; 

    } 
    string divEnd = @"</ul></div>"; 
    imageGallery.Text += divEnd; 

    this.Controls.Add(imageGallery); 
+0

任何错误发生什么...? – Pandian

+0

首先,感谢您的快速评论。不,只有像源图像不好或类似的东西 – user2122746

+0

我猜item.ToString()返回的路径不正确。打开输出HTML并尝试浏览到img SRC属性中的路径提及。 –

回答

1
foreach (DataRow item in ds.Tables[0].Rows) 
{ 
    ... 
    string mid = @"" + item.ToString(); 

产品DataRow对象。 您应该参考一个字段/列,如:

item [“FieldName”]。ToString();

1

在你的代码分配DataRoW as image Source not DataRow Value..

string mid = @"" + item.ToString(); 

item.ToString() - > is a DataRow Not a DataRow Value 

其输出是这样<img src='System.Data.DataRow' />

你需要改变,像下面

item["imageSrc"].ToString() - > it returns DataRow Value 

必须指定一个字段名到像下面一样

string mid = @"" + item["ImageSRC"].ToString(); 

其输出是这样<img src='sam.jpg' />

0

关于使用StringBuilder类

StringBuilder sb = new StringBuilder(); 
     sb.Append("<div class='more-products-holder'><ul>"); 
     foreach (DataRow item in ds.Tables[0].Rows) 
     { 
      sb.Append("<li><a><img src='" + item.ToString() + "'"); 
      sb.Append("' /></a></li>"); 

     } 

     sb.Append("</ul></div>"); 
     imageGallery.Text = sb.ToString();