ColdFusion 8
我有一个基于查询的cfgrid。它没有绑定到cfc函数,因为我想要一个滚动网格,而不是分页网格(如果你使用BIND,你必须提供页码和页面大小)..我可以弄清楚如何通过使用它来过滤一列以下代码,但我真的需要过滤三列......
grid.getDataSource().filter("OT_MILESTONE",t1);
向过滤器字符串添加更多内容并不起作用......它忽略了除第一对值之外的任何内容。
所以..我想如果我调用了一个传递三个值的函数并将查询结果返回给我,我可以替换网格的数据存储。但是我无法弄清楚要替换它的语法。
查询的返回变量具有以下格式:
{"COLUMNS":["SEQ_KEY","ID","OT_MILESTONE"],"DATA":[[63677,"x","y"]]}
有什么想法吗?
答案 0 :(得分:1)
你看过queryconvertforgrid()
吗?
http://www.cfquickdocs.com/cf9/#queryconvertforgrid
更新:你看过这些吗?
http://www.danvega.org/blog/index.cfm/2008/3/10/ColdFusion-8-Grid-Filtering
http://cfsilence.com/blog/client/index.cfm/2007/8/9/Filtering-Records-In-An-Ajax-Grid
答案 1 :(得分:0)
var w1 = ColdFusion.getElementValue('wbs');
var t1 = ColdFusion.getElementValue('task');
var p1 = ColdFusion.getElementValue('project');
grid = ColdFusion.Grid.getGridObject('data');
store = grid.getDataSource();
store.clearFilter();
store.filterBy(function myfilter(record) {
var wantit = true;
if (trim(w1) != '') {
if(record.get('WBS_ID') != w1) {
wantit = false;
}}
if (trim(t1) != '') {
if(record.get('OT_MILESTONE') != t1) {
wantit = false;
}}
if (trim(p1) != '') {
if(record.get('PROJECT') != p1) {
wantit = false;
}}
return wantit;
});
ColdFusion.Grid.refresh('data',false);
你需要一个JS修剪功能......
确保列名称为大写...