无法在服务器上的asp.net中获取div的内部html

时间:2014-04-18 12:07:14

标签: c# javascript jquery html asp.net

我有一个名为canvas的div。

当我尝试在回发时获取其InnerHTML属性时,它显示它具有空的html内容。

为什么不填充此属性?

aspx代码

<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>

C#

string finalHTML = canvas.InnerHTML;

enter image description here

4 个答案:

答案 0 :(得分:0)

修改你div的样式,你可以使用样式属性:

canvas.Attributes["style"]

答案 1 :(得分:0)

您只能访问通过<input><select><textarea>等适当表单字段提交的数据。这些字段具有runat="server"属性,因此您可以直接在后面的代码中访问它们,或者您可以为字段指定name属性,以便您可以通过Request.Form对象获取它们... < / p>

也许您可以将字段更改为<textarea>,或迁移到使用AJAX将HTML数据发布到您的应用程序。

答案 2 :(得分:0)

除非在面板触发器中定义了触发回发的事件,否则无法访问该值 - http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers

使用更新面板时,只会将页面的“部分”发回服务器,从而减少HTTP流量并提供AJAX功能。如果您没有为此UpdatePanel指定触发器,则UpdatePanel中的内容永远不会发送回服务器。

答案 3 :(得分:0)

尝试使用asp.net隐藏字段来获取canvas的innerHTML。 使用jquery获取div的HTML并将其初始化为隐藏字段。

$("#hiddenfieldID").val = $("#canvas").innerHTML;