2013-04-02 4 views
0

Я пытаюсь создать динамический код html через код cs, используя src из набора данных. (Каждый элемент в наборе данных является ЦСИ другого изображения) .Это первый раз, когда я пытаюсь сделать что-то вроде этого, и это не работает, любые советы будут полезны :)динамический html-код через cs-код (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(); 
Смежные вопросы