XPLATFORM 101

- Dataset > Search


앞에서 콤보 컴포넌트를 다루면서 search 메소드를 사용해
입력된 검색어에 대해 필터링을 다루는 방법을 보았습니다.

하지만 해당 메소드는 정확하게 일치하는 글자만을 가지고 온다는 제약이 있습니다.
요구사항에 따라 이런 기능을 확장할 필요도 있겠죠.
Search 예제는 최근 포털 검색창에서 많이 사용하는 '자동완성'과 같은 기능을 보여주고 있습니다.

Edit 컴포넌트에서 ontextchanged 이벤트를 사용하고
입력된 단어를 자소에 맞는 영문으로 변환하여
처리하여 줍니다.
그렇게 변환된 코드는 해당하는 검색어의 영문코드와 비교하여 필터링됩니다.

이때 검색어의 영문코드를 미리 등록해놓지 않고
초기 로딩시 데이터셋에 추가해줍니다.
function SuggestSample_onload(obj:Form, e:LoadEventInfo)
{
var count = dsFind.getRowCount();
var i;
for(i=0;i<count;i++)
{
var text = dsFind.getColumn(i,"text");
var code = GetSpliceTextE(text);
dsFind.setColumn(i,"pseudocode",code);
}
}


코드에 사용된 아이디어는 이미 많은 곳에서 사용하고 있습니다.
아래 글을 참고하면 도움이 되실듯 합니다.

검색어 자동완성

* 예제 코드를 보면 include 를 사용해 외부 코드를 활용하고 있습니다.
자바스크립트에서는 include 를 지원하지 않기 때문에 외부 코드를 활용하는데 어려움이 있는데
엑스플랫폼에서는 그런 어려움은 없네요. ^^

* 요즘 스마트폰을 보면 대부분 초성검색을 지원합니다.
예제에서도 초성에 대한 코드값만 추출하면 동일한 기능을 만들어낼 수 있습니다.

http://cafe.naver.com/xplatform101/187