微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在asp.net c#中保存可编辑div的innerText/innerHTML

如何解决无法在asp.net c#中保存可编辑div的innerText/innerHTML

我尝试保存可编辑 div 的更改文本。我在页面加载时将一些文本放入 div 并在浏览器中更改它,但我无法保存更改,因为 innerHTML 内容没有更改。

这是我的 aspx 文件

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Title</title>
</head>
<body>
    <form id="form1" runat="server">
      <div contenteditable="true" runat="server" id="txtText" ></div>
      <asp:Button ID="btnSave" runat="server" Text="Speichern" OnClick="btnSave_Click" />
    </form>
</body>
</html>

这是文件背后的代码

public partial class editWordModule : System.Web.UI.Page
{
    protected void Page_Load(object sender,EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            txtText.InnerHTML = "This is the unmodified text";
        }

        protected void btnSave_Click(object sender,EventArgs e)
        {
            string test = txtText.InnerHtml;
            //still shows "This is the unmodified text" while it was changed before in the div

        }
    }
}

那么如何保存编辑好的div的innerHTML?

解决方法

用 JavaScript 做个小把戏。 当按钮被点击时,获取DIV的innerHTML并放入一个asp:HiddenField

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
       <title>Title</title>
    </head>
    <body>
        <script type="text/javascript">
        function ChangeDiv() {
            var div = document.getElementById("txtText");
            var hdn = document.getElementById("hdnText");
            hdn.value = div.innerHTML;
        }
        </script>

        <form id="form1" runat="server">
            <div contenteditable="true" id="txtText"></div>
            <asp:HiddenField ID="hdnText" runat="server" ClientIDMode="Static" />
            <asp:Button ID="btnSave" runat="server" Text="Speichern" OnClick="btnSave_Click" OnClientClick="ChangeDiv()" />
        </form>
    </body>
</html>

在你后面的代码中阅读隐藏字段。

string hdn = hdnText.Value

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。