我是ColdFusion的新手,我正在努力弄清楚如何做一些簡單的功能,我可以在MS Access中輕鬆完成。基於下拉框過濾CFGRID
下面是我想要做的:我想要一個基於下拉框過濾其數據。然後根據另一個下拉框進一步篩選數據(如果需要)。
任何幫助將不勝感激。
例子:
<html>
<!---Grid Source--->
<cfquery name="getArtists" datasource="cfartgallery">
SELECT A.*
FROM ARTISTS A
WHERE
1=1
<cfif structKeyExists(form,'dropdownbox1')>
AND STATE like <cfqueryparam value="%#dropdownbox1#%" cfsqltype="CF_SQL_VARCHAR" maxlength="255">
<cfif structKeyExists(form,'dropdownbox2')>
AND LASTNAME like <cfqueryparam value="%#dropdownbox2#%" cfsqltype="CF_SQL_VARCHAR" maxlength="255">
</cfif> <!--- DropdownBox 2 --->
</cfif> <!--- DropdownBox 1 --->
ORDER BY A.LASTNAME, A.FIRSTNAME
</cfquery>
<head>
</head>
<body style="padding:20px;">
<cfform>
<cfformgroup type="horizontal" style="backgroundAlpha:0;font-size:12;color:##000;">
<cfformgroup type="vertical" width="100">
<!---Query for STATE--->
<cfquery name="getState" datasource="cfartgallery">
SELECT A.STATE
FROM ARTISTS A
</cfquery>
<!---STATE Dropdown--->
<cfselect name="dropdownbox1" query="getState" queryposition="below"
label="State:" value="STATE" display="STATE"
required="no"
style="backgroundAlpha:0;" width="125">
<option></option>
</cfselect>
</cfformgroup>
<cfformgroup type="vertical" width="100">
<!---Query for LastName--->
<cfquery name="getLast" datasource="cfartgallery">
SELECT A.LASTNAME
FROM ARTISTS A
</cfquery>
<!---LastName Dropdown--->
<cfselect name="dropdownbox2" query="getLast" queryposition="below"
label="Last Name:" value="LASTNAME" display="LASTNAME"
required="no"
style="backgroundAlpha:0;" width="125">
<option></option>
</cfselect>
</cfformgroup>
</cfformgroup>
<cfformitem type="spacer" height="20"/>
<!---Grid--->
<cfgrid name="myGrid" query="getArtists" format="html">
<cfgridcolumn name="ARTISTID" header="ARTISTID" width="75" headeralign="center" dataalign="center"/>
<cfgridcolumn name="FIRSTNAME" header="FIRSTNAME" width="100" headeralign="center" dataalign="center"/>
<cfgridcolumn name="LASTNAME" header="LASTNAME" width="75" headeralign="center" dataalign="center"/>
<cfgridcolumn name="ADDRESS" header="ADDRESS" width="100" headeralign="center" dataalign="center"/>
<cfgridcolumn name="CITY" header="CITY" width="125" headeralign="center" dataalign="center"/>
<cfgridcolumn name="STATE" header="STATE" width="125" headeralign="center" dataalign="center"/>
<cfgridcolumn name="POSTALCODE" header="POSTALCODE" headeralign="center" dataalign="center"/>
<cfgridcolumn name="EMAIL" header="EMAIL" width="125" headeralign="center" dataalign="center"/>
<cfgridcolumn name="PHONE" header="PHONE" headeralign="center" dataalign="center"/>
<cfgridcolumn name="FAX" header="FAX" headeralign="center" dataalign="center"/>
<cfgridcolumn name="THEPASSWORD" header="THEPASSWORD" headeralign="center" dataalign="center"/>
</cfgrid>
</cfform>
</body>
</html>
UPDATE
代碼奔Koshy給我的工作就像一個魅力,雖然一個問題,當我改變形式格式=「閃」,它給了我一個錯誤「沒有名稱爲'submit'的方法」。我需要做什麼來解決這個問題?
感謝 約翰尼
最近有一個類似主題的問題。閱讀這個線程,http://stackoverflow.com/questions/14026510/how-would-you-go-about-executing-a-database-query-based-on-the-value-from-a-form。我不確定這些概念是否適用於cfgrid,但值得一試。 –
當選擇過濾器(狀態/名稱)時,您缺少表單提交回原始頁面。 – BKK
還有一個問題,我也可以在鍵入框時將2個下拉列表與過濾器結合使用? @Ben Koshy –