• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 2941
2012.05.16 (09:19:13)
http://www.gauce.com/ComponentManual/TEMPLATE/Main/main.html일반적인 List로는 값을 뽑아내지 못합니다.

아래 관련링크1의 server단 샘플을 확인하시기 바랍니다.
Server Templete > 4.x > API > TR

감사합니다.

>안녕하세요.
>답변 감사드립니다.
>
>알려 주신데로 하니 되긴 하는데...
>정확히 안되네요... ㅠㅠ
>
>10의 항목이 목록으로 출력 되고, 그 중 2개만 선택해서
>submit하면 선택된 값의 key 값이 스크립트에서는
>잘 표기 됩니다만, 자바에서는 마지막 값만 넘어 옵니다.
>
>알려 주신데로 아래와 같이 소스를 변경 하였습니다.
>
>ds_02.SetDataHeader("revkey:STRING(10), loginId:STRING(20), chst:STRING(8)");
>                for(i=1; i<=ds_01.CountRow; i++){
>                        chk = ds_01.NameValue(i, 'chk');
>                        if(chk == '1'){
>                                ds_02.Addrow();
>                                ds_02.NameValue(i, "revkey") = ds_01.NameValue(i, "sjIdx");
>                                ds_02.NameValue(i, "loginId") = "<c:out value='${loginUser.userId}'/>";
>                                ds_02.NameValue(i, "chst") = 'CHST0005';
>                        }else{
>                                ds_02.Addrow();
>                                ds_02.NameValue(1, "revkey") = ds_01.NameValue(ds_01.RowPosition, "sjIdx");
>                                ds_02.NameValue(1, "loginId") = "<c:out value='${loginUser.userId}'/>";
>                                ds_02.NameValue(1, "chst") = 'CHST0005';
>                        }
>                }
>
>                tr_01.KeyValue = "JSP(I:input_01=ds_02)";
>            tr_01.KeyName  = "toinb_dataid4";
>
>            tr_01.Action="<c:url value='/gen/SCGenStopCallAutoEnd.do'/>?1=1";
>            dataToServer(tr_01);
>=======================================================================
>자바단에서는
>List rows = gav.getDataSetToList("input_01");
>//List형으로 넘긴 값을 받고요
>
>for(int i = 0 ; i < rows.size() ; i++){
>     //저장 로직 타는 부분입니다.
>}
>
>log로 자바단에서 입력되는 값을 보니
>아래와 같습니다...
>
>[{loginId=R100002, revkey=688, chst=CHST0005, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=, revkey=, chst=, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=R100002, revkey=691, chst=CHST0005, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=, revkey=, chst=, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=, revkey=, chst=, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=R100002, revkey=688, chst=CHST0005, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=, revkey=, chst=, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=, revkey=, chst=, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=, revkey=, chst=, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT},
>{loginId=, revkey=, chst=, JOB_TYPE_CODE=2, GAUCE_JOB_TYPE=INSERT}]
>
>선택된 값의 key 값은 전부 틀리지만 자바단에서 받아 들이는 값은
>한개만 인식되고 있네요... 결국은 submit을 잘못 해 주고 있다는 건데...
>
>다시 원점이네요... 알려주신데로 해 보았습니다만,
>한번더 부탁드려 봅니다...
>
>고생 많으십니다...
>
>
>>컴포넌트의 경우 데이터셋에 데이터를 한번에 입력 후 for문이 끝난 후에 post하시기 바랍니다.
>>Post시 변경된 데이터가 한번에 넘어가게 됩니다.
>>
>>ex)
>>ds_02.SetDataHeader("xxx:STRING(10)");
>>for(i=1; i<=ds_01.CountRow; i++){
>>        chk = ds_01.NameValue(i, 'chk');
>>        if(chk == '1'){
>>                //InsertRow는 지정한 index에 로우를 추가하는 메소드입니다. 순서대로 처리하게 하려면 Addrow를 사용하세요.
>>                //ds_02.InsertRow(i);
>>                ds_02.Addrow();
>>                ds_02.NameValue(i, "xxx") = ds_01.NameValue(i, "xxx");
>>        }else{
>>                //ds_02.InsertRow(1);
>>                ds_02.Addrow();
>>                //ds_01.RowPosition은 현재 DataSet의 focus가 지정된 상태값입니다. 값을 다시 한번 확인해보세요.
>>                ds_02.NameValue(1, "xxx") = ds_01.NameValue(ds_01.RowPosition, "xxx");
>>        }
>>}
>>
>>tr_01.KeyValue = "JSP(I:input_01=ds_02)";
>>tr_01.KeyName  = "toinb_dataid4";
>>
>>tr_01.Action="<c:url value='/xxx/xxx.do'/?1=1";
>>dataToServer(tr_01);
>>
>>>게시판을 이용해 주셔서 감사합니다.
>>>다음양식에 맞게 입력해주세요.
>>>
>>>* 고객시스템명 :
>>>* GAUCE 버전 : 4.0
>>>* WAS 종류(WebLogic 등등) : Tomcat
>>>* DB 종류 : MSSQL
>>>* 문의 유형(질문/요청/참조) : CHECK BOX
>>>* 내용 :
>>>안녕하세요.
>>>그리드에서 체크박스 기능을 구현하였습니다.
>>>
>>>체크된 값의 키 값만 서버에 submit을 할려고 합니다.
>>>for문으로 통해 alert로 체크된 키값은 잘 표기 됩니다.
>>>
>>>정작 submit 할 때, for문을 한번만 수행하는데
>>>
>>>어떻게 해야 할지 모르겠네요...
>>>
>>>아래는 해당 jsscrript입니다.
>>>================================================================================================
>>>ds_02.SetDataHeader("xxx:STRING(10)");
>>>                for(i=1; i<=ds_01.CountRow; i++){
>>>                        chk = ds_01.NameValue(i, 'chk');
>>>                        if(chk == '1'){
>>>                                alert("check!!");
>>>                                ds_02.InsertRow(i);
>>>                                ds_02.NameValue(i, "xxx") = ds_01.NameValue(i, "xxx");
>>>
>>>                                alert(ds_02.NameValue(i, "xxx"));
>>>                                
>>>                                tr_01.KeyValue = "JSP(I:input_01=ds_02)";
>>>                            tr_01.KeyName  = "toinb_dataid4";
>>>
>>>                            tr_01.Action="<c:url value='/xxx/xxx.do'/>?1=1";
>>>                            dataToServer(tr_01);
>>>                        }else{
>>>                                alert("unCheck!!");
>>>                                ds_02.InsertRow(1);
>>>                                ds_02.NameValue(1, "xxx") = ds_01.NameValue(ds_01.RowPosition, "xxx");
>>>                                
>>>                                tr_01.KeyValue = "JSP(I:input_01=ds_02)";
>>>                            tr_01.KeyName  = "toinb_dataid4";
>>>
>>>                            tr_01.Action="<c:url value='/xxx/xxx.do'/>?1=1";
>>>                            dataToServer(tr_01);        
>>>                        }
>>>                }
>>>
>>>action을 두번 태워야 하는거 같은데...
>>>생각보다 잘 안되네요...
>>
>

 
Tag List
XE Login