현제 EMEdit 1개, LuxeCombo 3개, DataSet 3개를 이용하여 검색조건을 입력하게 만들었습니다.
==> em1 ( EMEdit )
==> lc1, lc2, lc3 ( LuxeCombo )
==> ds1, ds2, ds3( DataSet )
em1에 데이타를 입력하면 OnLastChar() 이벤트를 걸어서 lc1 에 데이타가 들어가도록 하고
사용자가 그중 하나를 선택하면 lc1의 선택 내용에 따라( OnCloseUp() 이벤트 이용 ) lc2에
데이타가 들어가고 다시 그중 하나를 선택하면 lc2의 선택 내용에 따라( OnCloseUp() 이벤트 이용 )
lc3에 데이타가 들어가도록 하였습니다.
그런데 문제는 em1에 데이타를 입력하고 lc1, lc2, lc3 모두를 선택 한 후 em1의 내용을 바꾸는 경우
lc1는 em1의 내용에 따라서 새로운 데이타가 들어가고 lc2, lc3의 데이타는 모두 삭제가 되도록
ds1, ds2, ds3 각각에 CloseAll()를 호출하였습니다.
<script language=javascript for=em1 event=OnLastChar()>
ds1.CloseAll(); ds2.CloseAll(); ds3.CloseAll();
//---- ds1에 데이타 받아오는 스크립트 --//
</script>
이런형태를 코딩을 했는데요.
문제는 em1 데이타를 한번 수정해서는 ds1은 당연하 바뀌는 것이고
ds2, ds3의 데이타는 없어져야 하는데 그대로 남아있습니다.
그리고 em1 데이타를 한번두.. 그러니까 연속 두번을 수정하면
ds2, ds3의 데이타가 없어지는 이상한 현상이 나오네요.
그래서 혹시나 하고 위의 코드를
<script language=javascript for=em1 event=OnLastChar()>
ds1.CloseAll(); ds2.CloseAll(); ds3.CloseAll();
ds1.CloseAll(); ds2.CloseAll(); ds3.CloseAll();
//---- ds1에 데이타 받아오는 스크립트 --//
</script>
이런식으로 각 DataSet에서 CloseAll() 메소드를 두번씩 호출을 하니
em1 의 데이타를 한번만 수정해줘도 ds2, ds3의 데이타가 사라지는군요.
제가 코딩을 잘못한 것인지 아니면 컴포넌트 버그인것인지 알고 싶습니다.
## lc1 의 경우도 마찬가지 입니다. lc1이 변경되는 경우 ds2는 새로운 데이타를 받아오고
ds3은 내용이 삭제되어야 하는데 이것도 lc1을 두번 변경해야( OnCloseUp() 메소드 이용 )
ds3의 내용이 삭제가 됩니다.