데이타셋의 OnColumnChanged 이벤트는 해당하는 Row, Column ID의 값이 변경되었을 때 발생하게 됩니다.
그런데 그 이벤트 안에서 값을 바꿔주는 작업을 하게 되므로 계속해서 그 이벤트가 발생을 하게 되어 무한루프에 걸리는 것 같습니다.
데이타셋의 OnColumnChanged 이벤트 말고 그리드의 OnCheckClick 이벤트를 이용하여 작업을 하시기 바랍니다.
자세한 내용은 컴포넌트 매뉴얼의 Grid-Event-OnCheckClick 를 참고하시기 바랍니다.
>게시판을 이용해 주셔서 감사합니다.
>다음양식에 맞게 입력해주세요.
>
>* 고객시스템명 : 검사관리
>* GAUCE 버전 : 3.5
>* WAS 종류(WebLogic 등등) : Jeus
>* DB 종류 : 오라클
>* 문의 유형(질문/요청/참조) : 질문
>* 내용 :
>
>사용자가 그리드의 checkbox 를 check/uncheck 하게 해서 변경된 데이터의 키값과 check 유무를
>dataset 에 전달하려 합니다
>check 해서 전달하는 것은 문제가 없는데 check 한 것을 uncheck 하려고 하였더니 작동이 잘 안되거나
>무한루프에 빠집니다
>무한루프에 빠지는 원인은 알겠는데 다른 방법이 있는지 문의드립니다
>
><script language=JavaScript for=DS_Main event=OnColumnChanged(row,colid)>
> if (colid == "CHECK1") {
> if (DS_Main.nameValue(row, "CHECK1") != "1") {
> DS_Main.nameValue(row, "CHECK1") = "1";
> }
> else {
> DS_Main.nameValue(row, "CHECK1") = "0"; ->이부분 때문에 무한루프 발생
> }
> }
></script>
>
><script language=JavaScript for=GD_Main event=OnClick(row,colid)>
> if( colid == "CHECK1") {
> GD_Main.Editable = true;
> GD_Main.ColumnProp("CHECK1", "Edit") = "";
> } else {
> GD_Main.Editable = false;
> GD_Main.ColumnProp("CHECK1", "Edit") = "none";
> }
></script>