You must define these arguments in your CFC method.
<cfargument name="page" type="numeric" required="false">
<cfargument name="pagesize" type="numeric" required="false">
<cfargument name="sortcol" type="string" required="false">
<cfargument name="sortdir" type="string" required="false">
Your code should use this as well to properly page, sort, etc.
Don't forget the utility function: queryConvertForGrid. You can pass
it a query, arguments.page and arguments.pagedize, and CF will
automatically return the right data. Here is a complete example from
code I'll soon be using on coldfusionbloggers.org:
<cffunction name="getFeeds" access="remote" returnType="struct" output="false">
<cfargument name="page" type="numeric" required="false">
<cfargument name="pagesize" type="numeric" required="false">
<cfargument name="sortcol" type="string" required="false">
<cfargument name="sortdir" type="string" required="false">
<cfargument name="filter" type="string" required="false">
<cfset results = application.entries.getFeeds()>
<cfquery name="results" dbtype="query">
select *
from results
<cfif len(trim(arguments.filter))>
where upper(name) like <cfqueryparam cfsqltype="cf_sql_varchar"
value="%#ucase(arguments.filter)#%">
or upper(description) like <cfqueryparam
cfsqltype="cf_sql_varchar"
value="%#ucase(arguments.filter)#%">
</cfif>
<cfif len(arguments.sortdir) and len(arguments.sortcol)>
order by #arguments.sortcol# #arguments.sortdir#
</cfif>
</cfquery>
<cfreturn
queryConvertForGrid(results,arguments.page,arguments.pagesize)>
</cffunction>
You cna ignore the filter stuff. My code allows me to pass in a filter
string to reduce the items returned by the query. A simple example
that I'm typing right here and may have have a typo with it:
<cffunction name="getFeeds" access="remote" returnType="struct" output="false">
<cfargument name="page" type="numeric" required="false">
<cfargument name="pagesize" type="numeric" required="false">
<cfargument name="sortcol" type="string" required="false">
<cfargument name="sortdir" type="string" required="false">
<cfset results = application.entries.getFeeds()>
<cfreturn
queryConvertForGrid(results,arguments.page,arguments.pagesize)>
</cffunction>
On 8/9/07, Will Swain <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I'm playing with this for the first time. I have a cfc with the following
> function:
>
> <cffunction access="remote" name="getAllAuthors" output="no"
> returntype="query" displayname="Get All Authors" hint="Select all Authors
> from database">
>
> <!--- lets get all the Authors --->
>
> <cfquery name="qry_getAuthors" datasource="#Request.dsn_name#">
> SELECT authorID, authorFirstName, authorLastName
> FROM tbl_authors
> ORDER BY authorLastName ASC;
> </cfquery>
>
> <cfreturn qry_getAuthors>
>
> </cffunction>
>
> Which I am trying to bind to a cfgrid as below:
>
> <cfform>
> <cfgrid name="authorsGrid" format="html" stripeRows="true"
> bind="cfc:pathfromwebroot.cfcs.authors.getAllAuthors({cfgridpage},{cfgridpag
> esize},{cfgridsortcolumn},{cfgridsortdirection})">
>
> <cfgridcolumn name="authorFirstName" header="authorFirstName"
> width="300">
> <cfgridcolumn name="authorLastName" header="authorLastName"
> width="300">
> <cfgridcolumn name="authorID" header="authorID" width="100">
>
> </cfgrid>
> </cfform>
>
> But I get the following error:
>
> Detail Error parsing bind cfc
> pathfromwebroot.cfcs.authors.getAllAuthors({cfgridpage},{cfgridpagesize},{cf
> gridsortcolumn},{cfgridsortdirection})
>
> Message You cannot specify more arguments to a CFC function than it
> declares.
>
> Any suggestions? I'm sure it's something basic that I'm missing.
>
> Cheers
>
> Will
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Create robust enterprise, web RIAs.
Upgrade to ColdFusion 8 and integrate with Adobe Flex
http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJP
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:285797
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4