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

Reply via email to