Telerik Kendo ui网格显示html单元格而不是生成的html控件

时间:2012-07-04 10:04:14

标签: asp.net-mvc-3 kendo-ui

我正在尝试使用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({

    });
});

由于

3 个答案:

答案 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)'  />"  

},