gpt4 book ai didi

jquery - 如何在 SlickGrid 中设置格式化程序?

转载 作者:行者123 更新时间:2023-12-01 07:23:42 25 4
gpt4 key购买 nike

我已经完成了学习,我知道如何制作自定义格式化程序或编辑器以及如何使用它。我的问题是,我无法设置或使用格式化程序。我的结构:

jQuery 包括:

    <script type="text/javascript" src="jquery-1.7.2.min.js"></script>


<script type="text/javascript" src="jquery.event.drag-2.2.js"></script>
<script type="text/javascript" src="slick.core.js"></script>
<script type="text/javascript" src="slick.editors.js"></script>
<script type="text/javascript" src="slick.formatters.js"></script>
<script type="text/javascript" src="slick.grid.js"></script>

上面的所有内容都未经编辑。实现网格的代码:

                        var grid; var cols; var rows; var options = {
enableCellNavigation: true,
enableColumnReorder: false,
forceFitColumns: true
};
*rows and cols come from server side via JSON.parse*
grid = new Slick.Grid("#results", rows, cols, options);

来自服务器并填充 rows 和 cols 变量的代码基本上是这样的:

            cols:
echo json_encode('[
{"id":"price", "name":"Ár", "field":"price"},
{"id":"location", "name":"Elhelyezkedés", "field":"location"},
{"id":"egyeb", "name":"Lófasz", "field":"egyeb"},
{"id":"pic", "name":"Képek", "field":"pic", "formatter":"Slick.Formatters.PercentComplete"}
]');
rows:
echo json_encode('[
{"price": "5", "location":"AlsóBélaCsecselény", "egyeb":"lófasz", "pic":"1", "link":"ezittahelye"},
{"price": "6", "location":"qrsóBéqrcselény", "egyeb":"lófasz", "pic":"2", "link":"ezittahelye"},
{"price": "7", "location":"AlsóBélaqwqwrelény", "egyeb":"lófasz", "pic":"3", "link":"ezittahelye"},
{"price": "8", "location":"qwrCsecselény", "egyeb":"lófasz", "pic":"4", "link":"ezittahelye"}
]');

当 pic 列没有格式化程序时,一切工作正常,并且网格也可以使用列的额外属性,例如输入错误的“formatter”标签(如“fformatter”或其他),

但是每次 JSON 代码具有“formatter”属性时,Javascript 都会给出以下错误:

未捕获的异常:TypeError:'getFormatter(row, m)' 不是函数

每次我尝试加载表格时,格式化程序都会搞乱一切,我不知道下一步该做什么!我试图追踪这个错误,它引导我到 slick.grid.js 源代码的 1124. 行,这个函数以某种方式破坏了 return 语句的所有内容。

function getFormatter(row, column) {
var rowMetadata = data.getItemMetadata && data.getItemMetadata(row);

// look up by id, then index
var columnOverrides = rowMetadata &&
rowMetadata.columns &&
(rowMetadata.columns[column.id] || rowMetadata.columns[getColumnIndex(column.id)]);

return (columnOverrides && columnOverrides.formatter) ||
(rowMetadata && rowMetadata.formatter) ||
column.formatter ||
(options.formatterFactory && options.formatterFactory.getFormatter(column)) ||
options.defaultFormatter;
}

如有任何帮助,我们将不胜感激!

编辑:这是我从服务器获取代码的方法:

                            $.post( "queries.php?event=search&&phase=columns", $("#full_search").serialize(), function(data){
cols = JSON.parse(data);
alert(cols[1].id);
$.post( "queries.php?event=search&&phase=rows", $("#full_search").serialize(), function(data){
rows = JSON.parse(data);
alert(rows[1].link);
grid = new Slick.Grid("#results", rows, cols, options);
alert(grid.getData().length);
return false;
},"json");
return false;
},"json");
},"json");

最佳答案

Slick.Formatters.PercentComplete 不应是字符串。它是在 slick.formatters.js 中定义的函数(类构造函数)。

关于jquery - 如何在 SlickGrid 中设置格式化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com