2015-02-23 57 views
1

我正在使用phpgrid.com的datagrid並希望通過過濾來創建一個名爲products的列,並且只允許某些產品而不是全部。現在我可以做到這一點嗎?phpgrid中的過濾器值

$dg = new C_DataGrid("SELECT kbid,type,issuesummary,productid,priority,createddate,lastupdated,status,resolution,assigneduserid FROM issues", "kbid", "orders"); 
$dg->set_col_title("kbid", "KBID"); 
$dg->set_col_width("kbid", 50); 
$dg->set_col_title("type", "Type"); 
$dg->set_col_width("type", 50); 
$dg->set_col_title("issuesummary", "Summary"); 
$dg->set_col_width("issuesummary", 300); 
$dg->set_col_title("productid", "Product"); 
$dg->set_col_width("productid", 70); 
$dg->set_col_title("priority", "Priority"); 
$dg->set_col_width("priority", 70); 
$dg->set_col_title("createddate", "Reported"); 
$dg->set_col_width("createddate", 50); 
$dg->set_col_title("lastupdated", "Updated"); 
$dg->set_col_width("lastupdated", 50); 
$dg->set_col_title("status", "Status"); 
$dg->set_col_width("status", 50); 
$dg->set_col_title("resolution", "Resolution"); 
$dg->set_col_width("resolution", 50); 
$dg->set_col_title("assigneduserid", "Assigned"); 
$dg->set_col_width("assigneduserid", 70); 
$dg -> enable_resize(false); 
$dg -> set_caption("Issue Base"); 
$dg->enable_kb_nav(true); 
$dg -> enable_search(true); 
$dg -> set_dimension(1300, 460); 
$dg -> set_col_edittype('status', 'select', 'OP:Open;CL:Closed;DF:Deferred;VE:Vendor;FQ:FAQ'); 
$dg -> set_col_edittype('type', 'select', 'IP:IP;IT:IT;UP:UP;UQ:UQ;UW:UW;IF:IF;UF:UF;IW:IW;DI:DI'); 
$dg -> set_col_edittype('priority', 'select', '0:None;1:Urgent;2:High;3:Medium;4:Low;5:Lowest'); 
$dg -> set_col_edittype('resolution', 'select', 'PP:Pending Review;FX:Fixed;UR:Unreproducable;AD:As Designed;UF:Unable to Fix;WD:Withdrawn;NI:Need More Info;AS:Assigned;WK:Working on Issue;TS:Testing Issue;RJ:Rejected;UF:Temporary Fix;AC:Accepted'); 
$dg -> set_col_edittype('productid', 'select', '17:ALCS/GI;20:ALCS/ZAS;125:Beta zTPFGI;16:RTF;114:zTPFGI'); 
$dg -> set_col_edittype('assigneduserid', 'select', $y); 
$dg -> set_col_property("lastupdated", array("formatter"=>"date","formatoptions"=>array("srcformat"=>"ISO8601Short","newformat"=>"d-m-Y"))); 
$dg -> set_col_property("createddate", array("formatter"=>"date","formatoptions"=>array("srcformat"=>"ISO8601Short","newformat"=>"d-m-Y"))); 
$dg->set_pagesize(30); 
$dg->enable_export('EXCEL'); 
$dg->display(); 

我想過濾列productid,並只允許顯示值16,17,20,114,125。

回答

2

首先,我相信第一行是錯誤的。最後一個參數始終是表名作爲這裏要注意:

http://phpgrid.com/example/example-1-a-basic-php-datagrid-2/

注意,第三個參數總是等於數據庫表 名稱,而不是別名或任意的名稱(見下文)。

phpgrid constructor 3rd param

正確的路線是:

$dg = new C_DataGrid("SELECT kbid,type,issuesummary,productid,priority,createddate,lastupdated,status,resolution,assigneduserid FROM issues", "kbid", "issues"); 

現在,回到你的問題,你需要使用set_query_filter篩選數據。它基本上添加了WHERE sql子句,並在渲染網格之前從數據庫中進行過濾。 http://phpgrid.com/documentation/set_query_filterwhere/