我正在尝试使用asp.net mvc 3中新的Kendo UI网格。
我有一个表,表是从asp.net mvc 3中的控制器自动生成的。
用Kendo.ui网格显示它。
但是,我在单元格内部使用html代码而不是html控件
示例:
它显示在单元格中:<input checked="checked" class="check-box" disabled="disabled" type="checkb..
而不是输入,视图中的代码是@ html.input
或<a href="/Admin/Edit">Edit</a> | <a href="/Admin/Details">Details</a> | <a href="/Adm
而不是链接(视图中的代码是@ Html.actionLink)
如何对html代码进行编码?
这是我的剧本:
$(document).ready(function() {
$("#calendrierMatch").kendoGrid({
});
});
由于
答案 0 :(得分:26)
KendoUI Grid自动对网格内容进行编码,这就是为什么你得到文本<input type= ...
而不是实际的输入控件。
您可以使用encoded
选项(see documentation)禁用给定列的编码:
encoded:Boolean(默认值:true)指定列内容 被逃脱了。如果数据包含HTML标记,则禁用编码。
所以你需要这样的东西:
$(document).ready(function(){
$("#grid").kendoGrid({
//...
columns: [
{
field: "Column containing HTML",
encoded: false
}
]
});
});
答案 1 :(得分:1)
在模型绑定中使用剑道网格Razor Html Page使用此代码
@Html.Kendo().Grid(Model).Name("GridName").Columns(col =>{
col.Bound(m => m.ID);
col.Bound(m => m.Name);
col.Template(@<text>
@Html.Raw(HttpUtility.HtmlDecode( item.Text))
</text>);
})
答案 2 :(得分:0)
You need to add the template feature of kendo grid.
In the below code i have created a text box inside the cell of kendo grid.
{
field: "Total",
title: "Total",
width: "40px",
template: "<input type='text' class=\"quantity_total\" id='txtTotal_${ItemId}'
name='txtTotal_${ItemId}' maxlength='8' onkeypress = 'return
fnCheckNumeric_total(event,this.id)' />"
},