我正在尝试在我的页面上显示一个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"},
];
我在这里做错了吗?为什么当它是数据网格的一部分时,此复选框无法正确显示?
答案 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>';
};