使用Knockout-Kendo.js为ko绑定自定义kendo网格的标头

时间:2013-12-02 17:39:52

标签: javascript knockout.js kendo-ui kendo-grid knockout-kendo

我尝试使用具有敲除绑定和Knockout-Kendo.js库的kendo网格

定义如下:

<div data-bind="kendoGrid:
                {
                    data: SearchResult,
                    rowTemplate: 'rowTmpl',
                    altRowTemplate: 'altTmpl',
                    useKOTemplates: true
                }"> 
</div> 

<script id="rowTmpl" type="text/html">
    <tr class="tdText" role="row">
        <td >
            <a data-bind="attr: { href: 'scrccc_checkEdit.aspx?id=' + CheckID }" >
                <img src="images/icon-edit.gif" border="0" alt="Edit/View Check" />
            </a>
        </td>
        <td data-bind="text: CheckNumber"></td>
        <td data-bind="text: new Date(CreateDate).MMddyyyy()"></td>
        //...
        <td data-bind="text: ParishName">                                        
    </tr>
</script>
<script id="altTmpl" type="text/html">
   //....

从REST服务加载的数据包含更多我希望以网格显示的列 由于模板,该行看起来没问题,但问题在于网格标题,为源中的每个字段创建列。

如何在标题中隐藏某些列,并自定义其标题标签(更改列宽,标题标签并最终允许其他自定义。

例如,在上图中我想要Co

3 个答案:

答案 0 :(得分:5)

目前有一个特定的选项可以直接指定标题模板。您可以做的是直接使用titleheaderTemplate选项指定一组列及其标题,如:

this.gridOptions = {
    data: this.items,
    rowTemplate: "rowTmpl",
    useKOTemplates: true,
    columns: [ 
        {
            title: "My ID"
        },
        {
            headerTemplate: "<strong>Name Edit</strong>"   
        },
        {
            title: "Name Value"   
        }
    ]
}; 

示例:http://jsfiddle.net/rniemeyer/yjYMK/

答案 1 :(得分:1)

您可以通过为网格提供单独的列定义来进行所需的自定义。有了这些,您可以设置width,提供headerTemplatehide列:

columns: [{
    field: "FieldName",
    title: "Contact Name",
    headerTemplate: "This will be shown in the header",
    template: "This will be shown in the column",
    hidden: true,
    width: 140
}]

答案 2 :(得分:0)

另外值得注意的是,您可以将绑定应用于模板。以下示例使用knockout绑定:

&#13;
&#13;
$('#box').css({"transform": "translate(xy)", "transition": "all 1s" });
&#13;
&#13;
&#13;