"Creating Subforms with CFGRID," Vol. 1, Issue 3, p. 38

Listing 1.
<cfform action="inputaction.cfm">
Firstname: <input type="text" name="firstname" size=25><br>
Lastname: <input type="text" name="lastname" size=25>
<p>
<cfgrid
 name="insertGrid"
 width="250"
 height="160"
 selectmode="EDIT"
 insert="YES"
 insertbutton="Insert Topic"
 delete="YES"
 deletebutton="Delete Topic"
 >
<cfgridcolumn
name="topic"
header="Topics"
headeralign="LEFT"
dataalign="LEFT"
bold="No"
italic="No"
display="Yes"
headerbold="No"
headeritalic="No"
>
</cfgrid>
<p>
<input type="submit" value="Input It!">
</cfform>

Listing 2.
<cftransaction>

<cfquery datasource="experts" name="inputExperts">
INSERT INTO MAIN(Lastname, Firstname)
VALUES('#FORM.lastname#', '#FORM.firstname#')
</cfquery>

<cfgridupdate
 datasource="experts"
 tablename="Topics"
 grid="insertGrid"
 >
 
<cfquery datasource="experts" name="getID">
SELECT  MAX(ExpertID) AS theID
FROM MAIN
</cfquery>
 
<cfquery datasource="experts" name="setExpertID">
UPDATE TOPICS
SET
 expertID = #getID.theID#
WHERE expertID = 0
</cfquery>

</cftransaction>

Listing 3.
<cfquery datasource="experts" name="getMainRecords">
SELECT *
FROM  MAIN
WHERE Firstname = 'Joe' AND
  Lastname  = 'Schmoe'
</cfquery>

<cfloop query="getMainRecords">
<cfform action="updateaction.cfm">
<cfoutput>
<input type="hidden" name="expertid" value=#expertid#>
Firstname: <input type="text" name="firstname" size=25 value='#firstname#'><br>
Lastname: <input type="text" name="lastname" size=25 value='#lastname#'>
</cfoutput>
<p>
<cfquery datasource="experts" name="getTopics">
SELECT *
FROM  TOPICS
WHERE ExpertID = #getMainRecords.ExpertID#
</cfquery>
<cfgrid
 name="updateGrid"
 query="getTopics"
 width="250"
 height="160"
 selectmode="EDIT"
 insert="YES"
 insertbutton="Insert Topic"
 delete="YES"
 deletebutton="Delete Topic"
 >
<cfgridcolumn
 name="TopicID"
 display="No"
 >
<cfgridcolumn
 name="topic"
 header="Topics"
 headeralign="LEFT"
 dataalign="LEFT"
 bold="No"
 italic="No"
 display="Yes"
 headerbold="No"
 headeritalic="No"
>
</cfgrid>
<p>
<input type="submit" value="Update It!">
</cfform>
</cfloop>

Listing 4.
<cftransaction>

<cfquery datasource="experts">
UPDATE MAIN
SET  Lastname = '#FORM.lastname#',
 Firstname = '#FORM.firstname#'
WHERE ExpertID = #FORM.expertid#
</cfquery>

<cfgridupdate
 datasource="experts"
 tablename="Topics"
 grid="updateGrid"
 >

</cftransaction>