javascript - 将kendo模板中的HTML标签渲染为HTML

标签 javascript jquery html asp.net-mvc kendo-ui

我有一个存储在 SQL 数据库中的字符串,其中包含回车符。我可以通过NotePad++看到回车符。当我在剑道模板中显示该字符串时,所有内容都是一个没有回车符的长字符串。

我尝试使用字符串替换来将\r\n 替换为 <br \> 。当我这样做时,我现在看到
换行符应该在哪里。我认为这是渲染 HTML 标签的正确语法:

<script id="detail-template" type="text/x-kendo-template">
<div>
    <span><b>Position Description : </b>#= PositionDescription #</span>
</div>

这是我的 jquery kendo 网格中的相关定义:

detailTemplate: kendo.template($("#detail-template").html()),
detailInit: function(e) {
                kendo.bind(e.detailRow, e.data);
            },

但我明白了:

literal

我也尝试过使用 #: #,但后来我得到:

literal2

这是我进行替换的地方(在模型实体类中)

position.PositionDescription = position.PositionDescription.ToString().Replace("\r\n", "<br />");

更新:

这是 e.data 的控制台日志记录:

logging

最佳答案

所需的更改是将字段添加到主网格,使用 Html.Raw,但随后隐藏主网格中的列。 jquery 中的模板或 kendoDetailInit 配置无需进行任何更改。

主网格 HTML:

        <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td></td>
                <td>@item.location.LocationName</td>
                <td>@item.position.department.DepartmentName</td>
                <td>@item.position.PositionName</td>
                <td>@item.PostingID</td>
                <td>@item.PositionID</td>
                <td>@Html.Raw(@item.position.PositionDescription)</td>
                <td>@item.LocationID</td>
                <td>@item.position.DepartmentID</td>
                <td>@item.PostingCreated</td>
                <td>@item.PostingQuantity</td>
            </tr>
        }
    </tbody>

关于javascript - 将kendo模板中的HTML标签渲染为HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687456/

相关文章:

javascript - 转换 ArrayLike 对象

javascript - 如何使用 jQuery 切换表格内容

html - <a href ="#">Click here</a> 是什么意思?

javascript - 使用 CoffeeScript 时使用 util.inherits() "breaks"原型(prototype)制作

javascript - Canjs 中的验证

javascript - Nodejs路由器顺序

javascript - 使用 AJAX 仅提交一份表单

javascript - IE Windows 主题、CSS 和当前样式

javascript - 如何评估另一个 DOM 元素中的文本区域字符长度

html - Firefox 与 Chrome 上的绝对定位