当包含在SlickGrid中时,jQuery复选框无法正确显示

时间:2013-09-02 13:46:01

标签: jquery slickgrid

我正在尝试在我的页面上显示一个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"},
];

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

2 个答案:

答案 0 :(得分:0)

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

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

编辑:说实话,我从未想过如何使用getItemMetaData()。我已经“临时”修改了我的项目的slickgrid代码,直到我弄明白它并且卡住了。

答案 1 :(得分: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>';
};