Got you. I got it working using queryConvertForGrid and your advice, so
thanks for your help on that!

Next plan - look at editing records in a cfgrid. 

Cheers

Will

-----Original Message-----
From: Raymond Camden [mailto:[EMAIL PROTECTED] 
Sent: 09 August 2007 14:09
To: CF-Talk
Subject: Re: problem binding a cfc to a cfgrid

No. You _do_ have to follow a format for the result though. If I remember
right - it is a struct with two keys. The first key is query, and it
contains your query. The second key is TOTALROWCOUNT, and it contains the
total number of rows. Note that this will be higher (may be higher) then the
# of rows in your query, as you are supposed to be returning a "page" of
data.

On 8/9/07, Will Swain <[EMAIL PROTECTED]> wrote:
> Thanks Ray, I'll have a play with this.
>
> Is it required to use queryConvertForGrid?
>
> Cheers
>
> Will
>
>
> -----Original Message-----
> From: Raymond Camden [mailto:[EMAIL PROTECTED]
> Sent: 09 August 2007 12:58
> To: CF-Talk
> Subject: Re: problem binding a cfc to a cfgrid
>
> 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},{c
> > fg ridpag 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},{cfgridpages
> > iz
> > e},{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
> >
> >
> >
>
>
>
> 



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Download the latest ColdFusion 8 utilities including Report Builder,
plug-ins for Eclipse and Dreamweaver updates.
http;//www.adobe.com/cfusion/entitlement/index.cfm?e=labs%5adobecf8%5Fbeta

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:285810
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to