【问题标题】:Is it possible to get value from Summernote editor in asp.net web forms?是否可以从 asp.net 网络表单中的 Summernote 编辑器中获得价值?
【发布时间】:2016-07-27 13:03:42
【问题描述】:

我正在使用 Summernote 编辑器,我想在后面的代码中检索它的内容。 我尝试使用以下方式,但它返回 empty(null)

1-

default.aspx

<div class="summernote"  id="txtTest" runat="server"></div>

后面的代码:

string content= txtTest.InnerText;

2-

default.aspx

<div class="summernote"  id="txtTest" ></div>

后面的代码:

string name = Request.Form["txtTest"];

有什么建议吗?

【问题讨论】:

    标签: c# asp.net webforms summernote


    【解决方案1】:

    这是我完美运行的代码

    <div class="form-group">
        <asp:Label ID="lblSummernote" runat="server" Text="Image" AssociatedControlID="txtSummernote" CssClass="control-label col-md-3"></asp:Label>
            <div class="col-md-8">
                <asp:TextBox ID="txtSummernote" runat="server" TextMode="MultiLine" Rows="2"></asp:TextBox>
                <asp:Label ID="lblSum" runat="server" Text="Summernote"></asp:Label>
          </div>
     </div>
    

    JavaScript

    <script src="/Content/SummerNote/summernote.js"></script>
        <script>
            $(function () {
                // Set up your summernote instance
                $("#<%= txtSummernote.ClientID %>").summernote();
                focus: true
                // When the summernote instance loses focus, update the content of your <textarea>
                $("#<%= txtSummernote.ClientID %>").on('summernote.blur', function () {
                    $('#<%= txtSummernote.ClientID %>').html($('#<%= txtSummernote.ClientID %>').summernote('code'));
               });
            });
        </script>
        <script type="text/javascript">
            function funcMyHtml() {
                debugger;
                document.getElementById("#<%= txtSummernote.ClientID %>").value = $('#<%= txtSummernote.ClientID %>').summernote('code');
            }
        </script>
    

    背后的C#代码

     protected void btnSubmit_Click(object sender, EventArgs e)
            {
                lblSum.Text = txtSummernote.Text;
            }
    

    【讨论】:

      【解决方案2】:

      您是否考虑过使用&lt;textarea&gt; 而不是&lt;div&gt; 来处理这个问题?通常它们在存储值方面更容易使用(因为它们被设计为这样做):

      <textarea id="txtTest" runat="server"></textarea>
      

      处理此问题的一种方法是使用Summernote's available API 注册一个事件,以便在失去焦点时为&lt;textarea&gt; 元素设置HTML 内容(例如onblur):

      <script>
          $(function () {
              // Set up your summernote instance
              $("#txtTest").summernote();
              // When the summernote instance loses focus, update the content of your <textarea>
              $("#txtTest").on('summernote.blur', function () {
                  $('#txtTest').html($('#txtTest').summernote('code'));
              });
          });
      </script>
      

      由于您可能会在元素中存储 HTML 内容,因此您可能希望确保 .NET 不会认为您在尝试利用它。您可以通过更新页面的ValidateRequest 属性来明确设置此页面以忽略该过程:

      <%@ Page ... ValidateRequest = "false" %> 
      

      或者您可以尝试简单地转义正在设置的内容:

      $('#txtTest').html(escape($('#txtTest').summernote('code')));
      

      【讨论】:

      • Rion,我有同样的问题,当我根据你的建议将 div 更改为 textarea 时,我确实在代码隐藏中得到了文本,但我失去了 Summernote 编辑器的所有样式。按钮栏不见了,我只有一个非常小的可调整大小的文本字段。如何让 textarea 的样式与 div 相同?
      • 更新:知道了!!这是一个很好的解决方案!
      【解决方案3】:

      这是我如何让它工作的。 把它作为一个类来引用 class="summernote"

          $(document).ready(function () {
              $('.summernote').summernote();
          });
      

      【讨论】:

        猜你喜欢
        • 2020-06-25
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-12
        • 2015-07-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多