Подтвердить что ты не робот

Могу ли я динамически добавлять HTML в тег div из С# при загрузке?

Помните, я использую мастер-страницы, но могу ли я найти div внутри страницы и бросить туда какой-нибудь html? Благодарю.

4b9b3361

Ответ 1

Вы можете добавить div с runat = "server" на страницу:

<div runat="server" id="myDiv">
</div>

а затем установите его свойство InnerHtml из кода:

myDiv.InnerHtml = "your html here";

Если вы хотите изменить содержимое DIV на стороне клиента, вы можете использовать код javascript, подобный этому:

<script type="text/javascript">
    Sys.Application.add_load(MyLoad);
    function MyLoad(sender) {
        $get('<%= div.ClientID %>').innerHTML += " - text added on client";
    }
</script>

Ответ 2

Используйте для этого asp:Panel. Это переводит в div.

Ответ 3

Помните, используя

myDiv.InnerHtml = "something";

заменит все элементы HTML в myDIV. вам нужно добавить текст, чтобы избежать этого. В этом может помочь

myDiv.InnerHtml = "something" + myDiv.InnerText;

любой элемент управления html в myDiv, но не ASP html-элементы управления (поскольку они еще не отображаются).

Ответ 4

Вы можете ссылаться на элементы управления внутри главной страницы следующим образом:

void Page_Load()
{
    ContentPlaceHolder cph;
    Literal lit;

    cph = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");

    if (cph != null) {
        lit = (Literal) cph.FindControl("Literal1");
        if (lit != null) {
            lit.Text = "Some <b>HTML</b>";
        }
    }

}

В этом примере вам нужно установить элемент управления Literal в ContentPlaceholder.

Ответ 5

Вы хотите поместить код в код главной страницы за тем, который вставляет HTML в содержимое страницы, использующей эту главную страницу?

Я бы не искал контроль через FindControl, так как это хрупкое решение, которое можно легко сломать, если имя элемента управления изменилось.

Лучше всего объявить событие на главной странице, которое может обрабатывать любая дочерняя страница. Событие может передать HTML как EventArg.