jqGrid illegal xml character error
I am trying to setup a subgrid with my jqGrid and when I try to expand the subgrid I get an illegal xml character error that seems to be pointing to line 34 in the jquery.jqGrid.min.js file.I looked through my scripts to see if there error is within one of them but I could not find it. Here is my code,
header.cfm:
<!--- Header file for fasap --->
<link rel="stylesheet" type="text/css" title="Genesis" href="css/main.css" media="screen, projection" />
<link rel="stylesheet" type="text/css" title="Genesis" href="css/redmond/jquery-ui-1.8.10.custom.css" media="screen, projection" />
<link rel="stylesheet" type="text/css" media="screen" href="css/jquery.ui.all.css" />
<link rel="stylesheet" type="text/css" title="Genesis" href="css/jquery.treeview.css" media="screen, projection" />
<link rel="stylesheet" type="text/css" media="screen" href="jqGrid/css/ui.jqgrid.css" />
<script src="includes/css_browser_selector.js" type="text/javascript"></script>
<script src="includes/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="includes/jquery-ui-1.8.10.custom.min.js" type="text/javascript"></script>
<script src="includes/jquery.cookie.js" type="text/javascript"></script>
<script src="includes/jquery.treeview.js" type="text/javascript"></script>
<script src="includes/grid.locale-en.js" type="text/javascript"></script>
<script src="includes/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="jqGrid/src/jqModal.js" type="text/javascript"></script>
<script src="jqGrid/src/grid.loader.js" type="text/javascript"></script>
<script src="jqGrid/src/grid.formedit.js" type="text/javascript"></script>
<script src="jqGrid/src/grid.common.js" type="text/javascript"></script>
<script src="jqGrid/src/jquery.searchFilter.js" type="text/javascript"></script>
<script src="jqGrid/src/grid.subgrid.js" type="text/javascript"</script>
</head><body>
<cfset CurrYear = DateFormat(CreateDate(Left(Application.AidYear,2),1,1),'yyyy')>
<cfset PrevYear = CurrYear - 1>
<cfset NextYear = CurrYear + 1>
<div id="header">
<img src="images/top_corner.png" id="top_corner" />
<img id="seal" src="images/seal.png"/>
<img src="images/top_curve.png" id="top_curve"/>
<span class="ucmerced-logo">
<a href="./" style="border:0"><img src="images/ucmerced_logo.png" border="0" /></a>
</span>
</div>
<br><br><p align="right" style="margin-top:-10px;margin-bottom:-25px"><cfif IsDefined('session.ucm_name')>Hi, <cfoutput>#session.ucm_name#
</cfoutput><br /><a href="logout.cfm">Log out</a></cfif></p>
<div id="main">
<cfoutput>
<a title="Home" rel="home"><h1 align="center">#CurrYear#-#NextYear# Satisfactory Academic Appeal</h1></a>
</cfoutput>
</div>
main.cfm:
<html>
<head><title>FinAid Satisfactory Academic Appeal</title>
<cfinclude template="includes/_header.cfm" />
<script type="text/javascript">
$("document").ready(function(){
jQuery('#grid').jqGrid({
jsonReader: {
root: "DATA",
page: "CURPAGE",
total: "TOTALPAGES",
records: "TOTALROWS",
repeatitems: false,
id: "rowid",
subgrid: {root: "DATA",
repeatitems: false,
cell: ""}
},
url: 'get_applicants.cfc?method=get_applicants',
datatype: 'json',
width: "auto",
height: "auto",
mtype: "GET",
colNames: ['Student ID','Last Name','First Name','Term Code','Save Date','Submit Date'],
colModel: [
{name:'studentid',index:'studentid', width:100, sortable:true},
{name:'last',index:'last', width:200, sortable: true},
{name:'first',index:'first', width:200, sotable: true},
{name:'term',index:'term', width: 100, sortable: true},
{name:'savedate',index:'savedate', width:220, sortable: false},
{name:'submitdate',index:'submitdate', width:220, sortable: false}
],
rowNum:10,
rowList:[10,20,30],
pager: '#pager',
sortorder: "asc",
viewrecords: true,
subGrid: true,
subGridURL: 'get_applicants.cfc?method=banner_stuff',
subGridModel: [{ name : ['studentid','SAPCode','SAPDescription'],
width : [50, 200],
params:['studentid']}
],
loadonce: false,
caption: "List of Applicants"
}).navGrid('#pager', {search:true, edit:false, add:false, del:false});
jQuery('#grid').showCol('subgrid');
});
</script>
<cfinclude template="includes/admin_menu.cfm"/>
<div id="sidebar-left">
<table id="grid"></table>
<div id="pager"</div>
</div>
</body>
</html>
my cfc file:
<cfcomponent>
<cffunction name="get_applicants" access="remote" returntype="any" returnformat="json" output="false" securejson="false">
<cfargument name="page" type="numeric" default="1">
<cfargument name="rows" type="numeric" default="10">
<cfargument name="sidx" type="string" default="">
<cfargument name="sord" type="string" default="ASC">
<CFSET CurrYear = DateFormat(Now( ), 'yyyy')>
<cfset FallSem = "#CurrYear#30">
<CFSET NextYear = CurrYear + 1>
<cfset PartYear=DateFormat(Now( ), 'yy')>
<cfset PrevYear = #PartYear# - 1>
<cfset NextPart= #partYear# + 1>
<cfset AidYear="#PartYear##NextPart#">
<cfquery name="get_student" datasource="finaid">
select Student_ID "StudentID", SaveDate, SubmitDate, Term_Code "Term"
from FA_SAP_Student_Explaination
</cfquery>
<cfreturn queryConvertForJqGrid(get_student, arguments.page, arguments.rows) />
</cffunction>
<cffunction name="queryConvertForJqGrid" access="package" returntype="struct" output="no">
<cfargument name="get_student" type="query" required="yes" />
<cfargument name="page" type="numeric" required="no" default="1" />
<cfargument name="rows" type="numeric" required="no" default="10" />
<CFSET CurrYear = DateFormat(Now( ), 'yyyy')>
<cfset FallSem = "#CurrYear#30">
<CFSET NextYear = CurrYear + 1>
<cfset PartYear=DateFormat(Now( ), 'yy')>
<cfset PrevYear = #PartYear# - 1>
<cfset NextPart= #partYear# + 1>
<cfset AidYear="#PartYear##NextPart#">
<cfquery name="records" datasource="finaid">
select count(Student_ID) "total" from FA_SAP_Student_Explaination
</cfquery>
<cfset var result = structnew() />
<cfset var rowStruct = structnew() />
<cfset var col = "" />
<cfset result.CURPAGE = arguments.page />
<cfset result.TOTALPAGES = ceiling(arguments.get_student.recordcount/arguments.rows) />
<cfset result.TOTALROWS = arguments.get_student.recordcount />
<cfset result.DATA = arraynew(1) />
<cfoutput query="arguments.get_student" startrow="#(arguments.page-1)*arguments.rows+1#" maxrows="#records.total#">
<cfset rowStruct = structnew() />
<cfset rowStruct.rowid = currentrow />
<cfloop list="#lcase(arguments.get_student.columnlist)#" index="col">
<cfif col eq "studentid">
<cfquery name="get_banner" datasource="UCM_Prod">
select SPRIDEN_LAST_NAME "Last", SPRIDEN_FIRST_NAME "First"
from SPRIDEN
where SPRIDEN_ID = '#get_student.StudentID#'
order by 1,2
</cfquery>
<cfset rowStruct['studentid'] = get_student.StudentID />
<cfset rowStruct['last'] = get_banner.Last />
<cfset rowStruct['first'] = get_banner.First />
<cfset rowStruct['term'] = arguments.get_student.Term />
<cfset rowStruct['savedate'] = arguments.get_student.SaveDate />
<cfset rowStruct['submitdate'] = arguments.get_student.SubmitDate />
</cfif>
</cfloop>
<cfset arrayappend(result.DATA, rowStruct) />
</cfoutput>
<cfreturn result />
</cffunction>
<cffunction name="banner_stuff" access="remote" returntype="any" returnformat="json" output="false" securejson="false">
<cfargument name="studentid" required="no" default="100082388">
<cfargument name="page" required="no" default="1">
<cfargument name="rows" required="no" default="10">
<cfargument name="sidx" required="no" default="">
<cfargument name="sord" required="no" default="ASC">
<cfquery name="get_student_info" datasource="finaid">
select Explaination, SaveDate, SubmitDate, FA_SAP_Student_Explaination.Term_Code "Term_Code",
CourseName, FA_SAP_Courses.Term_Code "CourseTerm", RepeatInd
from FA_SAP_Student_Explaination, FA_SAP_Courses
where FA_SAP_Student_Explaination.Student_ID = '#arguments.studentid#'
and FA_SAP_Student_Explaination.Student_ID = FA_SAP_Courses.Student_ID
</cfquery>
<cfquery name="get_banner" datasource="UCM_Prod">
select SPRIDEN_ID "StudentID", RTVSAPR_CODE "SAP_Code", RTVSAPR_DESC "SAP_Description"
from SPRIDEN, RTVSAPR, RORSAPR
where SPRIDEN_ID = '#arguments.studentid#'
and (RORSAPR_SAPR_CODE = RTVSAPR_CODE or RORSAPR_SAPR_CODE_CALC = RTVSAPR_CODE)
and RORSAPR_TERM_CODE = '#get_student_info.Term_Code#'
</cfquery>
<cfreturn convertResponseforGrid(get_banner, arguments.studentid, arguments.page, arguments.rows) />
</cffunction>
<<cffunction name="convertResponseforGrid" access="package" returntype="struct" output="no">
<cfargument name="get_banner" type="query" required="yes">
<cfargument name="studentid" required="no" default="100082388">
<cfargument name="page" required="no" default="1">
<cfargument name="rows" default="10">
<cfquery name="get_student_info" datasource="finaid">
select Explaination, SaveDate, SubmitDate, FA_SAP_Student_Explaination.Term_Code "Term_Code",
CourseName, FA_SAP_Courses.Term_Code "CourseTerm", RepeatInd
from FA_SAP_Student_Explaination, FA_SAP_Courses
where FA_SAP_Student_Explaination.Student_ID = '#arguments.studentid#'
and FA_SAP_Student_Explaination.Student_ID = FA_SAP_Courses.Student_ID
</cfquery>
<cfset var result = structnew() />
<cfset var rowStruct = structnew() />
<cfset var col =""/>
<cfset result.CURPAGE = arguments.page />
<cfset result.TOTALPAGES = ceiling(get_student_info.recordcount/arguments.rows) />
<cfset result.TOTALROWS = get_student_info.recordcount />
<cfset result.DATA = arraynew(1) />
<cfquery name="records" datasource="finaid">
select count(*) "total" from FA_SAP_Student_Explaination
</cfquery>
<cfoutput query="get_student_info" startrow="#(arguments.page-1)*arguments.rows+1#" maxrows="#records.total#">
<cfset rowStruct = structnew() />
<cfset rowStruct.rowid = currentrow>
<cfloop list="#lcase(get_banner.columnlist)#" index="col">
<cfset rowStruct['studentid'] = #get_banner.StudentID#>
<cfset rowStruct['SAPCode'] = #get_banner.SAP_Code#>
<cfset rowStruct['SAPDescription'] = #get_banner.SAP_Description#>
</cfloop>
<cfset arrayappend(result.DATA, rowStruct) >
</cfoutput>
<cfreturn result>
</cffunction>
</cfcomponent>
Any suggestions as to what is causing this error?