0

我试图在我的页面上显示一个 jquery 复选框,但遇到了一些问题。当我在SlickGrid中显示复选框时,它显示为常规复选框,而不是 jQuery 样式。当我在页面的其他区域(不在 SlickGrid 中)显示复选框时,它以 jQuery 样式正确显示,因此我必须引用正确的库。

这是在网格中显示复选框的代码:

var propertiesTitleFormatter = function(row, cell, value, columnDef, dataContext) {
return  "#"+eval(row+1)+"<input type='checkbox' id='sale_check' onclick='UpdateSelected()' class='s_box' name='s_maybe'>"+" "+monthNames[Number(dataContext["saleMonth"].slice(-2))]  + ", " + dataContext["saleMonth"].slice(0,4)+"<br>"+toTitleCase(dataContext["address"])+", "+dataContext["municipality"];
};

var columns = [
{id:"address", name:"Address", field:"address",width:175,resizable:false,formatter:propertiesTitleFormatter, cssClass:"cell-properties"},
];

我在这里做错了什么吗?当它是数据网格的一部分时,为什么此复选框无法正确显示?

4

2 回答 2

0

问题是 SlickGrid 将在 jQuery UI 标记魔术完成后动态添加复选框。为了手动标记复选框,您必须调用

$(function() {
    $( "#sale_check" ).button();
});

尝试

var propertiesTitleFormatter = function(row, cell, value, columnDef, dataContext) {
return  "#"+eval(row+1)+"<input type='checkbox' id='sale_check' onclick='UpdateSelected()' class='s_box' name='s_maybe'>"+" "+monthNames[Number(dataContext["saleMonth"].slice(-2))]  + ", " + dataContext["saleMonth"].slice(0,4)+"<br>"+toTitleCase(dataContext["address"])+", "+dataContext["municipality"] + ' <script>$(function() {$( "#sale_check" ).button();})();</script>';
};
于 2013-09-02T13:59:38.867 回答
0

您不能在自定义格式化程序中设置 css 类。请参阅我为此提交的拉取请求,mliebman 评论说格式化程序不应该修改列定义。请改用 getItemMetaData。

https://github.com/mleibman/SlickGrid/pull/598

编辑:说实话,我从来不知道如何使用 getItemMetaData()。我已经“暂时”修改了我的项目的 slickgrid 代码,直到我弄明白,它卡住了。

于 2013-09-02T13:58:01.723 回答