Добавление изображениядинамически в asp.net c # - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть база данных книг, где у меня есть информация о книге.У меня есть строка, в которой я храню название картинки книги, которую я хочу отобразить на странице.Например, 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 ]

1 голос
/ 03 декабря 2011

Я предполагаю, что строка [8] - это имя вашего изображения ... попробуйте что-то вроде

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

Вам нужно будет также указать путь к изображению, который будет выглядеть как

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

Однако ... другой ответчик прав, это очень грязно и только разбьет ваше сердце позже.Элементы управления с привязкой к данным - это путь, который вы можете прочитать о DataGrids и Repeaters ... это будет того стоить!

1 голос
/ 03 декабря 2011

Вы делаете несколько ужасно неправильных вещей:

  1. Никогда не объединяйте подобные строки.Вместо этого используйте класс StringBuilder.
  2. Даже не создавайте HTML, объединяя строки.Он производит ужасно не поддерживаемый код.Если бы я увидел это в проекте, за который я отвечал, я бы сказал вам, чтобы исправить это немедленно.Если бы я увидел это в проекте, за который я не отвечал, я бы попросил вашего руководителя попросить вас немедленно исправить это.
  3. Пожалуйста, узнайте, как использовать элементы управления с привязкой к данным, такие как Repeater,!*
  4. Если база данных содержит только имя, и если имя является частью URL, вам необходимо сформировать полный URL:

    String.Format("http://mysite.com/images/{0}.jpg", row[8]);
    
0 голосов
/ 03 декабря 2011

Пожалуйста, избегайте встраивания HTML в ваш код.Вместо этого:

  1. Переместите всю разметку в файл aspx и из кода позади.
  2. Переключитесь на использование элементов управления вместо простого html: <asp:Image> для<img> tag и <asp:Panel> для <div> s
  3. Оберните элементы управления в <asp:Repeater> с помощью <ItemTemplate>
  4. Используйте Data Binding для назначения значений из DataTableк свойствам элементов управления
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...