【问题标题】:Can't save innerText / innerHTML of an editable div in asp.net c#无法在asp.net c#中保存可编辑div的innerText/innerHTML
【发布时间】:2021-08-07 14:19:15
【问题描述】:

我尝试保存可编辑 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呢?

【问题讨论】:

  • 我不相信 div 内容被回发 - 并且 div 的状态没有保存(没有视图状态)。因此,只需放入飞机 jane asp.net 文本框,您会好很多倍。
  • @AlbertD.Kallal :'plain'(如,简单明了)。 ; )
  • 感谢您的回答。我使用 div 是因为文本框无法自动适应 div 所做的内容。 stackoverflow.com/questions/67581061/…

标签: c# html asp.net webforms


【解决方案1】:

用 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

【讨论】:

  • 谢谢爱德华多,下周我会试试这个:-)
猜你喜欢
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
相关资源
最近更新 更多