是否可以从 asp.net 网络表单中的 Summernote 编辑器获取价值?
Is it possible to get value from Summernote editor in asp.net web forms?
我正在使用 summernote 编辑器,我想在代码隐藏中检索它的内容。
我尝试使用以下方式,但它 returns 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"];
有什么建议吗?
您是否考虑过使用 <textarea>
来处理此问题而不是 <div>
?通常它们在存储值方面更容易使用(因为它们被设计为这样做):
<textarea id="txtTest" runat="server"></textarea>
您可能处理此问题的方法之一是使用 Summernote's available API 注册一个事件,以便在焦点丢失时为您的 <textarea>
元素设置 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')));
这是我完美运行的代码
<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;
}
这是我如何让它工作的。
将其引用为 class
class="summernote"
$(document).ready(function () {
$('.summernote').summernote();
});
我正在使用 summernote 编辑器,我想在代码隐藏中检索它的内容。 我尝试使用以下方式,但它 returns 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"];
有什么建议吗?
您是否考虑过使用 <textarea>
来处理此问题而不是 <div>
?通常它们在存储值方面更容易使用(因为它们被设计为这样做):
<textarea id="txtTest" runat="server"></textarea>
您可能处理此问题的方法之一是使用 Summernote's available API 注册一个事件,以便在焦点丢失时为您的 <textarea>
元素设置 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')));
这是我完美运行的代码
<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;
}
这是我如何让它工作的。 将其引用为 class class="summernote"
$(document).ready(function () {
$('.summernote').summernote();
});