2013-04-02 31 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();