Skip to main content
Inspiring
December 3, 2008
Question

Logig in CFGRID / CFGRIDCOLUMN

  • December 3, 2008
  • 2 replies
  • 1294 views
I am using CS3 and ColdFusion 8.

I have a query that populates a cfgrid with no problems. However, I would like to add an extra column. The extra column will be populated according to data elements in the previous columns. For example, five students take a test. I want the Grade Letter column, which is populated with ??, to contain logic that will display A,B,C,D, or F according to their respective Grade Number.

Any ideas on how to do this?

Visual Help Table if I didn't express myself correctly.
<table width="300" border="0">
<tr>
<td>Student Name</td>
<td>Grade Number</td>
<td>Grade Letter</td>
</tr>
<tr>
<td>Student 1</td>
<td>90</td>
<td>??</td>
</tr>
<tr>
<td>Student 2</td>
<td>98</td>
<td>??</td>
</tr>
<tr>
<td>Student 3</td>
<td>80</td>
<td>??</td>
</tr>
<tr>
<td>Student 4</td>
<td>75</td>
<td>??</td>
</tr>
<tr>
<td>Student 5</td>
<td>60</td>
<td>??</td>
</tr>
</table>
    This topic has been closed for replies.

    2 replies

    BKBK
    Community Expert
    Community Expert
    December 13, 2008
    Oh, and, you may of course use switch-case in place of if-else.

    BKBK
    Community Expert
    Community Expert
    December 13, 2008
    <cfset students = "Student 1,Student 2,Student 3,Student 4,Student 5">
    <cfset Grade_Numbers = "90,98,80,75,60">

    <cfform name="GradesForm" format="flash">
    <cfgrid name="gradeGrid" height = "120" onChange="getGradeLetter();">
    <cfgridcolumn name="student" header="Student Name">
    <cfgridcolumn name="gradeNumber" header="Grade Number">
    <cfgridcolumn name="gradeLetter" header="Grade Letter">
    <cfloop index="i" from="1" to="#ListLen(students)#">
    <cfgridrow data ="#ListGetAt(students, i)#,#ListGetAt(Grade_Numbers, i)#,">
    </cfloop>
    </cfgrid>
    <cfformitem type="script">

    function getGradeLetter(){
    var gradeNumber = parseInt(gradeGrid.selectedItem.gradeNumber);
    if(gradeNumber >= 90 && gradeNumber <= 100) {
    gradeGrid.selectedItem.gradeLetter = "A";
    }
    else if(gradeNumber >= 80 && gradeNumber < 90) {
    gradeGrid.selectedItem.gradeLetter = "B";
    }
    else if(gradeNumber >= 70 && gradeNumber < 80) {
    gradeGrid.selectedItem.gradeLetter = "C";
    }
    else if(gradeNumber >= 60 && gradeNumber < 70) {
    gradeGrid.selectedItem.gradeLetter = "D";
    }
    else {
    gradeGrid.selectedItem.gradeLetter = "F";
    }
    }
    </cfformitem>
    </cfform>