Могу ли я установить Encoded в False для поля шаблона Kendo для Kendo ListView? - PullRequest
0 голосов
/ 07 марта 2019

Можно ли установить Encoded в False для поля шаблона Kendo для Kendo ListView?Здесь у меня есть сетка над списком.Как вы можете видеть в списке, форматированный текст отображается как HTML, где, как и в таблице, где enocding установлен на False, текст RIch отображается как текст.Могу ли я установить для кодировки значение false в поле, которое я хочу (Комментарий) в ListView?Если нет, какие у меня есть варианты, поскольку я не смог отобразить редактор в шаблоне 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:

enter image description here

1 Ответ

1 голос
/ 07 марта 2019

Да, вы можете использовать #=Comment#, чтобы заставить шаблон не кодировать вывод.Посмотрите этот пример из документации :

<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>.

...