Динамически добавлять HTML на страницу ASP.NET
Может кто-нибудь, пожалуйста, сообщите, что такое "правильный" метод для динамического добавления содержимого HTML на страницу ASP.NET?
Мне известен следующий декларативный метод.
//Declaration
<%= MyMethodCall() %>
//And in the code behind.
protected String MyMethodCall()
{
return "Test Value";
}
Есть ли лучший способ или лучший способ?
EDIT: я создаю галерическую фотогалерею динамически в зависимости от изображений, расположенных в определенной папке.
Ответы
Ответ 1
Зависит от того, что вы хотите сделать.
Для элементов управления/текста я обычно использую LiteralControl
и устанавливаю свойство Text
как HTML, который я хочу добавить, тогда этот элемент управления можно добавить в любом месте страницы, которую вы хотите отобразить
Ссылка LiteralControl
здесь
ok видя, как вы хотите его для Galleriffic, я думаю, что он будет псевдо-появляться как таковой...
LiteralControl imageGallery = new LiteralControl();
string divStart = @"<div id='thumbs'><ul class='thumbs noscript'>";
imageGallery.Text += divStart;
foreach ([image in images])
{
string imageHTML = @"<li><a class='thumb' name='optionalCustomIdentifier' ref='path/to/slide' title='your image title'>
<img src='path/to/thumbnail' alt='your image title again for graceful degradation' /></a>
<div class='caption'>[caption]<div></li>";
imageGallery.Text += imageHTML;
}
string divEnd = @"</ul></div>";
imageGallery.Text += divEnd;
this.[divOnPage].Controls.Add(imageGallery);
Ответ 2
Aspx:
<div id="DIV1" runat="server"></div>
Код позади:
DIV1.InnerHtml = "some text";
Ответ 3
Существует несколько способов сделать это, который действительно зависит от вашего сценария и предпочтения.
- Элементы управления веб-пользователями: можно добавлять динамически, и вы получаете полную поддержку редактора Visual Studio.
- XML-литералы (только для VB.NET): очень удобный способ быстрого компоновки HTML-кода.
- Шаблоны: добавьте простой документ HTML в ваше решение и включите его в качестве ресурса. Затем вы получите поддержку редактора, и вы не будете загромождать свой код источником HTML.
Ответ 4
Другой вариант
//.aspx
<asp:Literal ID="myText" runat="server"></asp:Literal>
//.aspx.cs
protected Literal myText;
myText.Text = "Hello, World!";