我可以在 Kendo ListView 的 Kendo 模板的字段上将 Encoded 设置为 False 吗?
Can I Set Encoded to False on a field of a Kendo Template for Kendo ListView?
我可以在 Kendo ListView 的 Kendo 模板的字段上将 Encoded 设置为 False 吗?
在这里,我在列表上有一个网格。正如您在列表中看到的那样,富文本显示为 HTML,而在 enocding 设置为 False 的网格中,富文本显示为文本。我可以在 ListView 中我想要的字段 ( Comment ) 上将编码设置为 false 吗?如果不是,我的选择是什么,因为我无法在 Kendo 模板中呈现编辑器...编辑:目标是删除网格我只想要列表。
@(Html.Kendo().Grid<WorkflowItemCommentModel>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(e => e.Comment).Width(300).Encoded(false);
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("CommentsRead", "WFItem").Data("getWorkflowItemID"))
)
)
<div class="col-sm-2"></div>
<div id="comments-list" class="col col-sm-10">
@(Html.Kendo().ListView<WorkflowItemCommentModel>()
.Name("CommentList")
.TagName("div")
.Events(e => e.DataBound("onCommentListDataBound").Change("onCommentCriteriaChange"))
.ClientTemplateId("itemCommentTemplate")
.DataSource(dataSource =>
{
dataSource.Read(read => read.Action("CommentsRead", "WFItem").Data("getWorkflowItemID"));
dataSource.Sort(sort => { sort.Add(f => f.CreatedDate); }).ServerOperation(false);
})
.Selectable(s => s.Mode(ListViewSelectionMode.Single))
)
模板:
@*//WFITEM COMMENT TEMPLATE*@
<script type="text/x-kendo-tmpl" id="itemCommentTemplate">
<div class="step">
<div class="step-wrapper">
<dl class="step-list-details">
<dt class="name"><b>Name:</b>#:CreatedByUserName# <b>Date:</b> #:CreatedDate#</dt>
<dd class="stepNum">
<b>Comment:</b>
<div contenteditable="true">
#:Comment#
</div>
</dd>
<dd class="title">
<b>Internal Comment:</b> #:InternalComment#
</dd>
<dd class="stepStatus">Status: Status Test</dd>
</dl>
<div class="btn btn-primary" id="viewStep">View</div>
</div>
</div>
</script>
我希望我的列表文本像在编码设置为 false 的网格中一样呈现:
是的,您可以使用 #=Comment#
强制模板不对输出进行编码。请参阅 documentation 中的示例:
<div id="example"></div>
<script>
var template = kendo.template("<div id='box'>#= firstName #</div>");
var data = { firstName: "<b>Todd</b>" }; //Data with HTML tags
var result = template(data); //Pass the data to the compiled template
$("#example").html(result); //display "Todd" in a bold font weight
</script>
请注意,这可能会使您的站点暴露于跨站点脚本 (XSS) 漏洞。至少,您可能希望确保数据不包含任何 <script>
标记。
我可以在 Kendo ListView 的 Kendo 模板的字段上将 Encoded 设置为 False 吗? 在这里,我在列表上有一个网格。正如您在列表中看到的那样,富文本显示为 HTML,而在 enocding 设置为 False 的网格中,富文本显示为文本。我可以在 ListView 中我想要的字段 ( Comment ) 上将编码设置为 false 吗?如果不是,我的选择是什么,因为我无法在 Kendo 模板中呈现编辑器...编辑:目标是删除网格我只想要列表。
@(Html.Kendo().Grid<WorkflowItemCommentModel>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(e => e.Comment).Width(300).Encoded(false);
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("CommentsRead", "WFItem").Data("getWorkflowItemID"))
)
)
<div class="col-sm-2"></div>
<div id="comments-list" class="col col-sm-10">
@(Html.Kendo().ListView<WorkflowItemCommentModel>()
.Name("CommentList")
.TagName("div")
.Events(e => e.DataBound("onCommentListDataBound").Change("onCommentCriteriaChange"))
.ClientTemplateId("itemCommentTemplate")
.DataSource(dataSource =>
{
dataSource.Read(read => read.Action("CommentsRead", "WFItem").Data("getWorkflowItemID"));
dataSource.Sort(sort => { sort.Add(f => f.CreatedDate); }).ServerOperation(false);
})
.Selectable(s => s.Mode(ListViewSelectionMode.Single))
)
模板:
@*//WFITEM COMMENT TEMPLATE*@
<script type="text/x-kendo-tmpl" id="itemCommentTemplate">
<div class="step">
<div class="step-wrapper">
<dl class="step-list-details">
<dt class="name"><b>Name:</b>#:CreatedByUserName# <b>Date:</b> #:CreatedDate#</dt>
<dd class="stepNum">
<b>Comment:</b>
<div contenteditable="true">
#:Comment#
</div>
</dd>
<dd class="title">
<b>Internal Comment:</b> #:InternalComment#
</dd>
<dd class="stepStatus">Status: Status Test</dd>
</dl>
<div class="btn btn-primary" id="viewStep">View</div>
</div>
</div>
</script>
我希望我的列表文本像在编码设置为 false 的网格中一样呈现:
是的,您可以使用 #=Comment#
强制模板不对输出进行编码。请参阅 documentation 中的示例:
<div id="example"></div>
<script>
var template = kendo.template("<div id='box'>#= firstName #</div>");
var data = { firstName: "<b>Todd</b>" }; //Data with HTML tags
var result = template(data); //Pass the data to the compiled template
$("#example").html(result); //display "Todd" in a bold font weight
</script>
请注意,这可能会使您的站点暴露于跨站点脚本 (XSS) 漏洞。至少,您可能希望确保数据不包含任何 <script>
标记。