0

我正在创建一个名为“core_appdata”的 CFC。此 CFC 将保存应用程序的核心存储过程。例子....

    <cfcomponent displayname="core_appdata" hint="I Return Core App Data" output="no">
    <cffunction name="getprogram_list">

  <cfargument name="getstoredproc_input_campaignid" type="string" required="false">
   <cfargument name="getstoredproc_input_filtertestrecs" type="string" required="false">
    <cfargument name="getstoredproc_input_startdate" type="date" required="false">
    <cfargument name="getstoredproc_input_enddate" type="date" required="false">
    <cfargument name="getstoredproc_input_listtypeid" type="string" required="false">
    <cfargument name="getstoredproc_input_listid" type="string" required="false">
    <cfargument name="getstoredproc_input_appenvr" type="string" required="false">

    <cfset var rst_getprogram_list ="">
     ---  stored proc ---            
         <cfstoredproc procedure  = "p_adb_getprogram_list">
         </cfstoredproc>

    <cfreturn rst_getprogram_list />
   </cffunction>
    </cfcomponent> 

我还想创建一个名为“core_appdata_grids”的 CFC。此 CFC 将用于绑定到 cfgrid 并允许分页等。在理想情况下,此 CFC 将从上述 CFC“core_appdata”中的方法/函数“getprogram_list”获取其数据。例子...

    <cfcomponent displayname="core_appdata_grids" hint="I Return Core App Data For CFGrids " output="no">

    <cffunction name="getprogram_list_grid">

               <cfargument name="page" required="no" />
        <cfargument name="pageSize" required="no" />
        <cfargument name="gridsortcolumn" required="no" />
        <cfargument name="gridsortdirection" required="no" />   
        <cfargument name="getstoredproc_input_campaignid" type="string" required="false">
               <cfargument name="getstoredproc_input_filtertestrecs" type="string" required="false">
               <cfargument name="getstoredproc_input_startdate" type="date" required="false">
               <cfargument name="getstoredproc_input_enddate" type="date" required="false">
               <cfargument name="getstoredproc_input_listtypeid" type="string" required="false">
               <cfargument name="getstoredproc_input_listid" type="string" required="false">
                <cfargument name="getstoredproc_input_appenvr" type="string" required="false">

        <cfset var rst_getprogram_list_grid ="">
         ---  get data ---           


        <cfreturn queryconvertforgrid(rst_getprogram_list_grid, page, pagesize) />
    </cffunction>

     </cfcomponent>

问题:

  • 这可能吗?如果是这样,它是如何完成的?
  • 如果是这样,这是使用 CFC 时的最佳做法吗?
  • 如果不是,在 CFC 之间共享数据的最佳方式是什么

提前感谢您花时间帮助我解决这个问题。

超频

4

2 回答 2

2

我看不到生成网格的 cfc 的名称,而只是扩展了将继承所有方法的基本 cfc。

<cfcomponent extends="core_appdata">

<cffunction name="getprogram_list_grid">
    <cfargument name="page" required="no" />
    <cfargument name="pageSize" required="no" />
    <cfargument name="gridsortcolumn" required="no" />
    <cfargument name="gridsortdirection" required="no" />   
    <cfargument name="getstoredproc_input_campaignid" type="string" required="false">
    <cfargument name="getstoredproc_input_filtertestrecs" type="string" required="false">
    <cfargument name="getstoredproc_input_startdate" type="date" required="false">
    <cfargument name="getstoredproc_input_enddate" type="date" required="false">
    <cfargument name="getstoredproc_input_listtypeid" type="string" required="false">
    <cfargument name="getstoredproc_input_listid" type="string" required="false">
    <cfargument name="getstoredproc_input_appenvr" type="string" required="false">

    <cfset var rst_getprogram_list_grid = super.getprogram_list() />

    <cfreturn queryconvertforgrid(rst_getprogram_list_grid, page, pagesize) />
</cffunction>

</cfcomponent>
于 2012-08-22T00:01:04.817 回答
1

如果您不想扩展 CFC,特别是如果这对您的模型不适用,则可以调用另一个 CFC:

<cfset var rst_getprogram_list_grid = createObject("component","core_appdata").getprogram_list() />

或者在这一切之上的某个地方甚至更好:

<cfset request.core_appdata=createObject("component","core_appdata")>

然后在你的 CFC 中:

<cfset var rst_getprogram_list_grid = request.core_appdata.getprogram_list() />

只是几个选项。

于 2012-08-22T01:59:36.123 回答