• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 2500
2012.05.15 (16:10:59)
안녕하세요.
답변 감사드립니다.

알려 주신데로 하니 되긴 하는데...
정확히 안되네요... ㅠㅠ

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