2012-01-06 44 views
1

有没有办法抓取URL参数并将其作为过滤器查询推送到datatablesDatatables URL参数过滤

即。 datatable.cfm/?sSearch_6=overdue

这将有望搜索栏6为“过期”

回答

0

假设你正在使用类似这样datatables示例代码匹配。

你可以尝试这样的事:

<!--- 
    Filter Column 6 
---> 
<cfparam name="url.sSearch_6" default="" type="string" /> 


<!--- Data set after filtering ---> 
<cfquery datasource="#coldfusionDatasource#" name="qFiltered"> 
    SELECT SQL_CALC_FOUND_ROWS #listColumns# 
     FROM #sTableName# 
    <cfif len(trim(url.sSearch))> 
     WHERE <cfloop list="#listColumns#" index="thisColumn"><cfif thisColumn neq listFirst(listColumns)> OR </cfif>#thisColumn# LIKE <cfif thisColumn is "version"><!--- special case ---><cfqueryparam cfsqltype="CF_SQL_FLOAT" value="#val(url.sSearch)#" /><cfelse><cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="%#trim(url.sSearch)#%" /></cfif></cfloop> 
     <cfif len(trim(url.sSearch_6))> 
      AND #ListGetAt(listColumns,6)# = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#url.sSearch_6#" /> 
     </cfif> 
    </cfif> 

    <!--- Filter Column 6 ---> 
    <cfif url.iSortingCols gt 0> 
     ORDER BY <cfloop from="0" to="#url.iSortingCols-1#" index="thisS"><cfif thisS is not 0>, </cfif>#listGetAt(listColumns,(url["iSortCol_"&thisS]+1))# <cfif listFindNoCase("asc,desc",url["sSortDir_"&thisS]) gt 0>#url["sSortDir_"&thisS]#</cfif> </cfloop> 
    </cfif> 

</cfquery> 
+0

弥, 感谢。我能够成功地将搜索推送到处理程序,但是我想使用参数指向数据表页面,并让页面解析参数并将其转发给处理程序。 Allen在datatables上建议使用'aoSearchCols'。我现在正在研究它。 – Brian 2012-01-10 17:39:38