매우 CFGRID (CFGRIDUPDATE 포함)를 사용하려고했지만 NULLS를 허용하지 않았습니다.Coldfusion : 간단한 cfgridupdate 유효성 검사
<cfset strWarning= "">
<cfif IsDefined("FORM.gridEntered")>
<cfif FORM.myName EQ '' OR FORM.myURL EQ ''>
<cfset strWarning= "Error: Form fields cannot be blank">
<cfelse>
<cfgridupdate grid="gridSomething"
dataSource="qryTSQL" tableName="tblName" keyOnly="Yes">
</cfif>
</cfif>
<cfoutput>#strWarning#</cfoutput><br />
<cfform>
<cfgrid name="gridSomething" query="qryTSQL"
selectMode="Edit" format="HTML">
<cfgridcolumn name = "myID" display="No">
<cfgridcolumn name = "myName">
<cfgridcolumn name = "myURL">
</cfgrid>
<cfinput type="submit" name="gridEntered">
내가 점점 오전 오류입니다 - 오류 진단 : 복잡한 오브젝트 유형은 단순 값으로 변환 할 수 없습니다. 표현식은 변수 또는 중간 표현식 결과를 단순 값으로 요구했습니다. 그러나 결과를 간단한 값으로 변환 할 수는 없습니다. 간단한 값은 문자열, 숫자, 부울 값 및 날짜/시간 값입니다. 쿼리, 배열 및 COM 개체는 복잡한 값의 예입니다. 가장 큰 오류의 원인은 복잡한 값을 단순한 값으로 사용하려고 시도했기 때문입니다. 예를 들어 cfif 태그에서 쿼리 변수를 사용하려고했습니다.
나는이 원하는 해결책을 생각하고 있다고 생각합니다.
감사합니다.
편집 : 업데이트 오류 메시지
오류 진단 : 요소 myURL이는에서 정의되지 않는다.
Form scope - struct
FIELDNAMES GRIDENTERED,__CFGRID__CFFORM_1__GRIDSOMETHING
GRIDENTERED Submit Query
GRIDSOMETHING.MYID Form scope - array
1 1001
GRIDSOMETHING.MYURL Form scope - array
1 /test_d.cfm
GRIDSOMETHING.ORIGINAL.MYID Form scope - array
1 1001
GRIDSOMETHING.ORIGINAL.MYURL Form scope - array
1 /changed.cfm
GRIDSOMETHING.ROWSTATUS.ACTION Form scope - array
1 U
__CFGRID__CFFORM_1__GRIDSOMETHING __CFGRID__EDIT__=2 MYID Y MYURL Y 1 U 1001 1001 /test_d.cfm /changed.cfm
을 핵심은 오류를 일으키는 변수를 찾는 것입니다. cfset 태그와 cfoutput 태그 사이의 모든 것을 주석으로 처리 한 다음 페이지를 다시 실행하는 것이 좋습니다. 오류가 발생하지 않으면 해당 변수를 식별하는 데 도움이되도록 비트 단위로 주석 처리를 제거하십시오. –
전체 오류 텍스트를 추가 할 수 있습니까? (예 : 화면에서 복사하여 붙여 넣기, 개발 환경의 CFAdmin에서 "강력한 예외 처리"가 활성화되어 있는지 확인하십시오). 문제를 일으키는 정확한 선을 강조 표시해야합니다. 당신이 게시 한 코드에서 아무 것도 볼 수 없지만 오류가 발생합니다. –