0

我正在尝试通过使用数据集中的 src 来通过 cs 代码制作动态 html 代码。(数据集中的每个项目都是另一张图片的 src)。这是我第一次尝试做这样的事情并且它不起作用,任何提示都会有帮助:)

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);
4

3 回答 3

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

item 是 DataRow 对象。您应该引用其中一个字段/列,例如:

项目[“字段名”].ToString();

于 2013-04-02T10:35:41.633 回答
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' />

于 2013-04-02T10:36:16.457 回答
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();
于 2013-04-02T10:51:16.303 回答