我有一个存储在 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);
},
但我明白了:
我也尝试过使用 #: #,但后来我得到:
这是我进行替换的地方(在模型实体类中)
position.PositionDescription = position.PositionDescription.ToString().Replace("\r\n", "<br />");
更新:
这是 e.data 的控制台日志记录:
最佳答案
所需的更改是将字段添加到主网格,使用 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/