У меня есть div с именем canvas.
Когда я пытаюсь получить его свойство InnerHTML
он показывает, что он имеет пустое содержимое html.
Почему это имущество не заполнено?
<form id="Form1" runat="server">
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="upPanel" runat="server">
<ContentTemplate>
<div id="canvas" clientidmode="Static" runat="server" class="ui-droppable"
style="width: 1363px; height: 766px;">
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
string finalHTML = canvas.InnerHTML;
попробуйте использовать asp.net Hidden Field, чтобы получить innerHTML холста. Используйте jquery для получения HTML-кода div и инициализации его в скрытое поле.
$("#hiddenfieldID").val = $("#canvas").innerHTML;
Значение не будет доступно, если событие триггера обратной передачи не определено в триггерах панели - http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-updatepanel- триггеры
При использовании панелей обновлений только "части" страницы отправляются обратно на сервер, уменьшая HTTP-трафик и предоставляя функции AJAX. Если вы не укажете триггер для этой UpdatePanel, содержимое в UpdatePanel никогда не будет отправлено обратно на сервер.
Вы можете получить доступ только к данным, представленным через соответствующие поля формы, такие как <input>
, <select>
или <textarea>
. Эти поля имеют runat="server"
поэтому вы можете получить к ним доступ непосредственно в своем коде позади, или вы можете указать поля атрибуту name
чтобы вы могли получить их через объект Request.Form...
Возможно, вы можете изменить поле в <textarea>
или перенести на использование AJAX для отправки данных HTML в ваше приложение.
чтобы изменить стиль вашего div, вы можете использовать атрибут стиля:
canvas.Attributes["style"]