▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

Tabular Data Control 기초 다지기 4 - 마지막!

조회 수 14712 추천 수 0 2005.09.25 05:11:19

DB를 이용한 데이타 출력 확장 - 검색하기

마지막으로 검색 기능을 달아보자. 이 검색의 특징은 페이지 이동이 없다는것이다. 보통 게시판에서 검색을 하면 검색결과를 보이는 페이지로 이동을 하는데 여기서 보이는 검색은 그러할 필요가 전혀 없다. 소스를 보자

list_asp_ex3.asp

<%
' 변수 선언및 초기화
Dim DBCon
Dim strConn
Dim strQry
Dim szHead
Dim szBody
szHead  = ""
szBody  = ""
strConn = ""

' 검색어를 받아온다.
req_CustomerID = Request("CustomerID")
' DB 연결 문자 변수
strConn = strConn&"Provider=SQLOLEDB.1;Persist Security Info=True;"
strConn = strConn&"Data Source=localhost;"     ' Server Name
strConn = strConn&"User ID=sa;"                ' User ID
strConn = strConn&"Password=;"     ' User Password
strConn = strConn&"Initial Catalog=NorthWind;" ' DataBase
' DB 객체 생성및 DB 오픈
Set DBCon = Server.CreateObject("ADODB.Connection")
DBCon.Open strConn    

' 쿼리문 실행결과를 레코드셋으로 반환
strQry = "select CustomerID,CompanyName,ContactName from Customers "
' 검색을 위해서 쿼리문 수정
if Trim(req_CustomerID) <> "" then
    strQry = strQry& " where CustomerID like '%"&req_CustomerID&"%'"
end if
Set rs = DBCon.Execute(strQry)
Do While not rs.eof
    db_CustomerID  = rs(0)
    db_CompanyName = rs(1)
    db_ContactName = rs(2)
    
    ' TDC 형식으로 데이타를 가공한다.
    szBody = szBody&"|"& db_CustomerID  &"|¶"
    szBody = szBody&"|"& db_CompanyName &"|¶"
    szBody = szBody&"|"& db_ContactName &"|^"
    rs.MoveNext()
Loop

' TDC 형식으로 헤더를 만든다.
szHead = "CustomerID¶CompanyName¶ContactName^"
Response.Write szHead
Response.Write szBody
%>

list_asp_ex3.htm

<OBJECT id=List CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
    <PARAM NAME="UseHeader" VALUE="true">
    <PARAM NAME="DataURL" VALUE="list_asp_ex3.asp">
    <PARAM NAME="TextQualifier" VALUE="|">
    <param NAME="FieldDelim" VALUE="¶">
    <PARAM NAME="RowDelim" VALUE="^">
    <PARAM NAME="CharSet" VALUE="euc-kr">
</OBJECT>
<SCRIPT for="List" event="ondatasetcomplete">
    loading.style.display = "none";
    var rs = List.recordset;
    if (rs.eof) {
        nodata.style.display = "";
    } 
</SCRIPT>
<SCRIPT language="javascript">
function doSearch(srch) {
    loading.style.display = "";
    nodata.style.display = "none";
    List.DataURL = "list_asp_ex3.asp?CustomerID="+srch;
    List.ReSet();
}
</SCRIPT>
CustomerID : <input type="text" name="txtSrch">
<input type="button" value="Search" onclick="doSearch(txtSrch.value);">
<table border="1" DataSrc="#List">
    <thead>
    <tr>
        <th>CustomerID</th>
        <th>CompanyName</th>
        <th>ContactName</th>
    </tr>
    <tr id="loading">
        <td colspan="3" align="center">데이타를 읽는 중입니다. 잠시만 기다려 주세요...</td>
    </tr>
    <tr id="nodata" style="display:none;">
        <td colspan="3" align="center">검색된 데이타가 없습니다.</td>
    </tr>
    </head>
    <tbody>
    <tr>
        <td><span datafld="CustomerID" DATAFORMATAS="HTML"></span></td>
        <td><span datafld="CompanyName" DATAFORMATAS="HTML"></span></td>
        <td><span datafld="ContactName" DATAFORMATAS="HTML"></span></td>
    </tr>
    </tbody> 
</table>

검색이 되었을 경우 다음과 같이 나온다

2-31.gif 

검색 결과가 없을 경우...

2-32.gif 

검색을 해보면 알겠지만 검색시 페이지 이동없이 바로 리스트만 새로 갱신해서 보여준다. (신기하지 않나 -_-; 나는 처음에 신기했다 -_-; 특히나 검색된 게시물 없을 경우 처리가 신기했다 -_-) list_asp_ex3.asp 을 보면 검색을 위해서 다음 두 줄의 구문을 추가하였다.

req_CustomerID = Request("CustomerID")
if Trim(req_CustomerID) <> "" then
    strQry = strQry& " where CustomerID like '%"&req_CustomerID&"%'"
end if

검색을 위해서 검색어를 request로 받아와서 그것을 쿼리문 변수에 넣는다.

이번엔 list_asp_ex3.htm 페이지를 보자. 추가된 부분이 몇부분 있는데..위에서 부터 새롭게 추가된 부분을 하나씩 살펴보겠다.

<SCRIPT for="List" event="ondatasetcomplete">
    loading.style.display = "none";
    var rs = List.recordset;
    if (rs.eof) {
        nodata.style.display = "";
    } 
</SCRIPT>

List 객체가 ondatasetcomplete 이벤트가 일어났을때 실행되는 코드이다.(위에서 설명했으니 대충 알것지 -_-) 나는 처음에 이 코드를 보고 놀랬었다. List.recordset 란 부분을 보면 List란 객체의 레코드를 가져온다. 꼭 asp 처럼 말이다. 또한 값이 있는지 없는지를 rs.eof 로 검사를 해서 확인한다. ADO와 거의 흡사하다! (도대체가 똑같은 기술을 왜 만들어 놓은것일까 -_-) 아무튼 이런식으로 해서 가져오는 값이 없을 경우는 id 값이 nodata을 가진 객체를 보여주게해서 데이타가 없음을 메시지로 뿌려준다.

function doSearch(srch) {
    loading.style.display = "";
    nodata.style.display = "none";
    List.DataURL = "list_asp_ex3.asp?CustomerID="+srch;
    List.ReSet();
}

검색하는 할때 이용하는 자바스크립트 함수이다. 검색을 시작시에 일단 loading, nodata 객체들을 다시 초기화 시킨다. 그런 후 List 객체에서 DataURL 속성에 다시 새로운 URL 값을 할당한다. 그리곤 ReSet() 메서드 실행! 그럼 다시 List의 값을 갱신한다. 이 ReSet() 메서드 때문에 페이지 이동없이 검색이 가능한것이다. 단지 List 객체를 ReSet()만 시키기 때문이다.

CustomerID : <input type="text" name="txtSrch">
<input type="button" value="Search" onclick="doSearch(txtSrch.value);">

검색 버튼을 추가한다. (보면 알겠지 -_-+)

<tr id="nodata" style="display:none;">
    <td colspan="3" align="center">검색된 데이타가 없습니다.</td>
</tr>

이 부분도 추가한다. (역시 보면 알것지 -_-++)






문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
27 keyfile을 이용한 ssh 접속 방법 뭉충닷컴 2010-10-28 13719
26 멀티 브라우저 지원하는 frame, iframe 접근 코딩 방법 [3] 뭉충닷컴 2010-07-21 26490
25 crontab을 이용한 Tomcat 서버 자동 재시작 shell 뭉충닷컴 2009-08-28 25132
24 자바스크립트로 각 form의 element(요소)에 접근 방법 file [2] 뭉충닷컴 2008-09-11 57637
23 ERwin 에서 Logical의 컬럼명을 코멘트(Comment)로 변경하기 file [2] 뭉충닷컴 2008-01-16 31863
22 Tabular Data Control 마지막 강좌! 뭉충닷컴 2007-06-14 15707
21 ASP로 웹 어플리케이션 주소 사용하기 file 뭉충닷컴 2006-12-10 17938
20 VB로 WebBrowser 컨트롤의 HTML 제어 file 뭉충닷컴 2006-12-01 21424
19 ASP 페이징 쉽게 처리하기 file [4] 뭉충닷컴 2006-08-29 24367
18 두개의 비슷한 DB를 비교해서 변경된 부분 찾아내기 file 뭉충닷컴 2006-05-03 15008
17 ASP에서 Class 를 이용해보자 file 뭉충닷컴 2006-02-26 24876
16 Hotmail의 DHTML EDITOR 편집기를 이용해보자. file [34] 뭉충닷컴 2006-02-04 30253
15 Tabular Data Control 응용 - 제목 Sort (정렬) 쉽게 하기 [3] 뭉충닷컴 2006-01-27 14144
14 스크립트(Script) 코드를 암호화 시켜보자(Encode/Decode) [2] 뭉충닷컴 2005-06-10 19116
13 dll을 이용한 로그인 file [1] 뭉충닷컴 2005-11-25 22036
12 Tabular Data Control 응용 - 페이징 처리하는 3가지 방법 file [1] 뭉충닷컴 2005-11-23 16283
11 Query를 잼있고, 유용하게 사용해보자 file [3] 뭉충닷컴 2005-10-01 14729
10 Tabular Data Control 응용 - 테이블의 행 배경색이 격으로 변하게하기 뭉충닷컴 2005-09-25 15803
9 폼(Form) 검증해주는 스크립트(Script) file [15] 뭉충닷컴 2005-06-07 19333
8 asp 로 서버에 zip 압축/압축해제(풀기) 예제 file [8] 뭉충닷컴 2005-08-12 19805
7 MS-SQL의 osql.exe 이용 하기 (도스상에서 sql 구문 이용) 뭉충닷컴 2005-09-25 19322
6 SQL Script 로 ERD와 테이블 생성 손쉽게하기 뭉충닷컴 2005-09-25 21790
» Tabular Data Control 기초 다지기 4 - 마지막! file 뭉충닷컴 2005-09-25 14712
4 Tabular Data Control 기초 다지기 3 file 뭉충닷컴 2005-09-25 14480
3 Tabular Data Control 기초 다지기 2 file 뭉충닷컴 2005-09-25 14187
2 Tabular Data Control 기초 다지기 1 file [1] 뭉충닷컴 2005-09-25 15260
1 OWC를 이용한 웹에서 엑셀 그래프 그리기 file [4] 뭉충닷컴 2007-12-19 19087