일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 객체생성
- prototype.js
- JDK1.5
- 우편번호검색
- prototype
- JavaScript
- ajax
- Ajax한글 처리문제
- RowCount 폐이징
- ASP.NET Error
- 자동완성기능
- ASP.NET
- 이벤트 처리
- XML
- 웹표준
- Oracle 10g
- 페이지 간 게시
- ASP.NET 방명록
- 자바스윙
- ASP.NET 회원가입
- Ajax댓글
- SQL 명령어가 올바르게 종료되지 않았습니다.
- 테이블또는 뷰가 존재하지 않습니다.
- ORA-00942
- 스크립트릿
- json
- DataList컨트롤
- hyperlink 쿼리스트링 바인딩
- jsp
- Repeater
- Today
- Total
IT 쟁이
회원가입페이지 작성하기 4 - 우편번호 검색하기 -2 본문
어제에 이어서 우편번호 검색하기에 대한 내용을 다루고자 합니다. 우선 코드를 좀 수정했습니다.
private void Ima_post_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
this.PostList1.Items.Clear();
bool flag=false;
string Connection=ConfigurationSettings.AppSettings["Key"];
SqlConnection con = new SqlConnection(Connection);
try
{
con.Open();
SqlCommand command = new SqlCommand("select zipcode,sido,gugun,dong ,bunji from zipcode where DONG=@dong",con);
SqlParameter sp = new SqlParameter("@dong",SqlDbType.VarChar,52);
sp.Value=input_post.Value;
command.Parameters.Add(sp);
SqlDataReader myreader = command.ExecuteReader(CommandBehavior.CloseConnection);
while(myreader.Read())
{
flag=true;
string post = myreader[0].ToString() +" "+myreader[1].ToString()+" "+myreader[2].ToString()+" "+myreader[3].ToString();
ListItem list = new ListItem(post,myreader[0].ToString() +"/"+myreader[1].ToString()+" "+myreader[2].ToString()+" "+myreader[3].ToString() );
PostList1.Items.Add(list);
}
if(flag==false)
{
ListItem error = new ListItem("해당하는 주소를 찾을 수 없습니다.");
PostList1.Items.Add(error);
}
}
catch(Exception)
{
// RegisterClientScriptBlock("Pscript","<script>alert(에러)</script>");
ListItem error = new ListItem("해당하는 주소를 찾을 수 없습니다.");
PostList1.Items.Add(error);
}
finally
{
con.Close();
}
}
코드부분의 수정한 이유는 -_- 실행을 몇번해 보니 뭐가 좀 이상하더군요. 일단 검색어가 잘못입력됬을 경우에
처리를 해주지 않았습니다. 그리고 첫번째 반지동이란 주소를 입력했을때 또다른 봉림동이란 주소를 입력했을 경우에는 반지동의 데이터와 봉림동의 데이터가 같이 나오게 됩니다. 자세한 생략은 생략합니다. -_- 다아실거라고.
![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs5/5_11_27_11_blog143176_attach_0_10.gif?original)
이제 우편번호의 검색도 끝났습니다. 닫기 버튼을 눌렀을때 검색된 우편번호의 값을 부모창에 돌려줘야 됩니다.
닫기번튼이벤트에 대한 비하인드 코드를 보면
private void btn_close_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
ListItem blist = PostList1.SelectedItem;
string [] post =blist.Value.Split('/');
RegisterStartupScript("script1","<script>opener.SetAddress('"+post[0]+"','"+post[1]+"')</script>");
}
현재 리스트에 선택된 ListItme 항목을 가져옵니다. 값에 해당하는 항목은 우편번호와 주소를 "/"로 구분해서 들어가 있습니다. 이를 문자열을 파싱해서 나눕니다. RegisterStartupScript()메서드를 통해서 자바스크립트함수를 호출합니다.
이때 부모창에 는 SetAddress()라는 스크립트 함수가 존재해야합니다. 매개변수로는 post[0], post[1] 값을 줍니다.
SetAddress() 메서드에 대해서 알아볼까요.
function SetAddress(num,addr)
{
var aNum = num.split('-');
document.getElementById('postNum1').value=aNum[0];
document.getElementById('postNum2').value=aNum[1];
document.getElementById('postAddr').value=addr;
objFinder.close();
}
num 에는 우편번호 주소값인데 "-" 기분으로 앞의 주소와 뒤의 주소를 구분하기 위해서 split()함수를 사용합니다.
나머지는 해당 컨트롤에 값의 대입합니다. 마지막에 Close()함수인데 저 함수는 우편번호 검색팝업창을 닫기 위해 사용됩니다. 밑에 코드를 보면 왜그런지 아실듯 하네요..
objFinder=window.open("Postsearch.aspx","", "width=370, height=380, status=0, menubar=0");
그림 - 정상적으로 실행된 경우
이것으로 회원가입에 대한 간략한 포스팅을 마치도록 하겠습니다. -_- 혹시 에러나 잘못된 점 있으면 코멘트 달아주시면 도움이 될것 같아요 (__)(--) 좋은 밤되세요.