Kendo Grid复选框:jQuery

时间:2015-08-13 17:58:52

标签: javascript jquery kendo-ui kendo-grid

我在MVC应用程序中使用Kendo网格。我需要以编程方式设置jQuery中其中一行的值。使用下面的代码,我看到ID更改为99,描述更改为Test,但复选框不会检查。

var grid = $('#myGrid').data("kendoGrid");

var firstItem = grid.dataSource.data()[0];
var dataItem = firstItem.get('IsChecked');
firstItem.set('IsChecked', true);
firstItem.set('ID', 99);
firstItem.set('Description', 'Test');
grid.refresh();

任何想法为什么?

这是我的EF代码:

    public List<Dictionary> GetData()
    {
        List<Dictionary> result;

        using (var context = DataContext)
        {
            try
            {
                result = context.Database.SqlQuery<EventType>("spc_GetEventTypes")
                         .Select(c => new Dictionary
                         {
                             IsChecked = true,
                             ID = c.EventTypeID,
                             Description = c.EventTypeName
                         })
                        .ToList();

                return result;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
    }
}

这里是创建网格的jQuery:

gridSelect = function(name, idColumnName, descColumnName, descColumnTitle, url, height) {

    $(name).kendoGrid({
            autoBind: true,
            autoHeight: true,
            width: 200,
            columns: [{
                field: "IsChecked",
                title: "<input type='checkbox' name='IsChecked'  class='centerCheckbox parentCheckbox' />",
                template: "<input type='checkbox' name='IsChecked' class='childCheckbox' #= isChecked ? checked='checked' : ''# />",
                clientTemplate: "<input type='checkbox' #= IsChecked ? checked='checked':'' # class='chkbx' />",
                headerTemplate: "<input type='checkbox' id='masterCheckBox' onclick='checkAll(this)'/>",
                attributes: {
                    class: "ob-center"
                },
                width: 30
            }, {
                field: idColumnName,
                width: 20
            }, {
                field: descColumnName,
                title: descColumnTitle,
                width: 250
            }],
            dataSource: new kendo.data.DataSource({
                schema: {
                    model: {
                        id: "ID",
                        fields: {
                            isChecked: {
                                type: "bool",
                                validation: {
                                    required: false
                                }
                            },
                            ID: {
                                type: "int",
                                validation: {
                                    required: true
                                }
                            },
                            Description: {
                                type: "string",
                                validation: {
                                    required: true
                                }
                            }
                        }
                    }
                },
                transport: {
                    read: {
                        url: url,
                        dataType: "json",
                        contentType: "application/json"
                    }
                },
                serverFiltering: true,
                pageSize: 0
            }),
            height: height,
            scrollable: true,
            sortable: false,
            reorderable: false,
            resizable: false,
            columnMenu: false,
        }).data("kendoGrid") //.hideColumn(idColumnName);

};

由于

卡尔

0 个答案:

没有答案