Javascript 剑道-插入事件属性
我创建了一个通用js DataGrid创建者,代码如下:Javascript 剑道-插入事件属性,javascript,html,asp.net-mvc-4,kendo-ui,Javascript,Html,Asp.net Mvc 4,Kendo Ui,我创建了一个通用js DataGrid创建者,代码如下: function createGrid(targetDiv, mycolums, source, fnChange) { return $(targetDiv).kendoGrid({ dataSource: { data: source, pageSize: 20 }, scrollable: true, sortable: true,
function createGrid(targetDiv, mycolums, source, fnChange) {
return $(targetDiv).kendoGrid({
dataSource: {
data: source,
pageSize: 20
},
scrollable: true,
sortable: true,
pageable: {
input: true,
numeric: false
},
columns: mycolums,
change: fnChange
});
}
称之为:
createGrid("#grid1", columns, dataSource, onChange);
它工作得很好,但我想以某种方式修改我的create grid函数,因为有时一些网格需要绑定到其他事件,比如edit:fnEdit
等等
我的问题是,如何修改createGrid
以接受对象而不是特定参数。比如说,我想做一些事情,比如:
createGrid("#grid1", columns, dataSource, {change: OnChange, edit: OnEdit});
所以我可以这样称呼它:
createGrid("#grid1", columns, dataSource, {change: OnChange, edit: OnEdit});
你的建议应该行得通。在函数中,设置网格属性时只需检查对象属性:
var otherAttrs = {
change: onChange,
dataBound: onDatabound
};
createGrid(div, cols, datas, otherAttrs);
function createGrid(targetDiv, mycolums, source, opts) {
return $(targetDiv).kendoGrid({
dataSource: {
data: source,
pageSize: 20
},
scrollable: true,
sortable: true,
selectable: "multiple, row",
pageable: {
input: true,
numeric: false
},
columns: mycolums,
change: opts.change ? opts.change : null,
dataBound: opts.dataBound ? opts.dataBound : null,
});
}
工作