Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Filtering a grid from a select box

Status
Not open for further replies.

crimmelcp

Programmer
Oct 13, 2004
31
0
0
US
I have seen several posts where a user can filter a grid based on a select box.
All the examples seem to be using arrays.
I am trying to filter a grid based on a table selection.
Select a company and then show all records that have that company.

Below is both cfm for array and what I am trying to do with a table.
Any Ideas
Thanks
Charlie crimmel

Code for array
Code:
<cfparam name="myselect2"  default="" >
<cfparam name="CompanyName" default="ALL" >
<cfscript>
	rs = queryNew("id,fname,lname,dept,email");
	addRow(rs, 'simeon','bateman','IT','simeon@simb.net');
	addRow(rs, 'Mr','Man','HR','theMan@mr.com');
	addRow(rs, 'Cool','Guy','HR','coolGuy@hr.com');
	addRow(rs, 'Another','test','Customer Service','another@test.com');
	function addRow( qry, fname, lname, dept, email)
	{
		queryAddRow(rs);
		querySetCell(rs,'fname',fname);
		querySetCell(rs,'lname',lname);
		querySetCell(rs,'dept',dept);
		querySetCell(rs,'email',email);
	}
</cfscript>

<cfquery dbtype="query" name="getDepts">
	SELECT distinct dept
	FROM rs
	ORDER BY dept
</cfquery>

<cfquery dbtype="query" name="MemberList">
	SELECT * from rs
	ORDER BY dept
</cfquery>

<cfsavecontent variable="astest">
	if(_global.arrMembers == undefined) _global.arrMembers = data.dataProvider.slice(0);
	var arrMembers = _global.arrMembers;
	var arrDisplay:Array = [];
	for(var i = 0; i < arrMembers.length; i++)
	 {if(arrMembers[i].dept == myselect1.value || myselect1.value == 'All')
		{arrDisplay.push(arrMembers[i]);}}
	data.dataProvider = arrDisplay;
</cfsavecontent>

<cfform name="myForm" format="flash"  width="900" height="600" preloader="no">
<cfformgroup type="horizontal">
	<cfformgroup type="panel" label="Search our Members">
		<cfselect query="getDepts" queryposition="below" label="Parent category" name="myselect1" value="dept" display="dept" width="200" onChange="#astest#">
			<option value="All">All</option>
		</cfselect>
		<cfgrid name="data" query="MemberList" >
			<cfgridcolumn header="First Name" name="fname" width="75" />
			<cfgridcolumn header="Last Name" name="lname" width="75" />
			<cfgridcolumn header="email" name="email" width="100" />
			<cfgridcolumn header="Department" name="dept" display="false" />
		</cfgrid>
	</cfformgroup>

Below is the code that I am trying to use for a table
Code:
<cfparam name="myselect2"  default="" >
<cfparam name="CompanyName" default="ALL" >
<CFQUERY name="get_corporate" datasource="contacts">
SELECT ContactID, CompanyName, FirstName, LastName, Address, City, StateorProvince,
Postalcode, PhoneNumber, PhoneExtension, MobilePhone, FaxNumber, EmailAddress,
InternetSite, Notes, BillComp, Billadd1, Billadd2, Billcity, Billstate, Billzip
FROM Corporate_Contacts
ORDER BY CompanyName ASC 
</CFQUERY>

<cfquery name="getComp" datasource="contacts">
	SELECT distinct CompanyName
	FROM Corporate_Contacts
	ORDER BY CompanyName
</cfquery>

<<cfsavecontent variable="ascomp">
	<cfif "#myselect2#" IS "ALL">
		<cfquery name="find_All" datasource="contacts">
			SELECT CompanyName, FirstName, LastName, Address, City, StateorProvince
			FROM Corporate_Contacts
			ORDER BY CompanyName
		</cfquery></cfif>
		<cfif "#myselect2#" NEQ "ALL">
		<cfquery name="find_Comp" datasource="contacts">
			SELECT CompanyName, FirstName, LastName, Address, City, StateorProvince
			FROM Corporate_Contacts
			ORDER BY CompanyName
		</cfquery></cfif>
</cfsavecontent>

<cfformgroup type="panel" label="Search Corporate Contacts" >
<cfselect query="getComp" queryposition="below" label="Parent category" name="myselect2" value="CompanyName" display="CompanyName" width="200" onChange="#ascomp#">
			<option value="All">All</option>
		</cfselect>
<cfgrid name="grid" query="get_corporate" selectmode="single"  >
		<cfgridcolumn name="FirstName" header="FirstName" width="75"  />
		<cfgridcolumn name="LastName" header="LastName" width="75"  />
		<cfgridcolumn name="Address" header="Address" width="150"  />
		<cfgridcolumn name="City" header="City" width="75"  />
		<cfgridcolumn header="CompanyName" name="CompanyName" display="false" />
</cfgrid>
</cfformgroup></cfformgroup>
</cfform>
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top