본문 바로가기
IT-개발,DB

[ASP.NET] ASP.NET에서 텍스트 박스 한글 우선 입력 방법!!! 가르쳐주세요

by SB리치퍼슨 2010. 9. 16.

시샵 윈도우애플리케이션에서는 텍스트박스 속성에 imemode가 있어서
한글을 우선적으로 입력하는게 가능합니다.

문제는 웹인데..
asp.net에서도 그런기능을 쓸려면 어떻게 해야 합니까?
속성에도 없던데..

A.

 다음과 같은 스크립트 함수를 페이지의 공통으로 포함하는 스크립트에 포함시킵니다.

 function SetImeMode()
{

// TextBox 한글우선/영문우선/한글불가 모드 설정

//

// - 기본값(아무것도 설정 안했을 경우) : 한글우선임!!

//

 for(var e=0 ; e < document.forms[0].elements.length ; e++)

 {

  var ctl = document.forms[0].elements[e];

  if (ctl.type == "text" || ctl.tagName == "TEXTAREA")

  {

   if ( ctl.imeMode == 'inactive' ) // 영문우선

   {

    ctl.style.imeMode = 'inactive';

   }

   else if ( ctl.imeMode == undefined || ctl.imeMode == 'active' ) // 한글우선

   {

    ctl.style.imeMode = "active";

   }

   else if ( ctl.imeMode == 'auto' ) // 이전 텍스트박스 설정 따라감

   {

    ctl.style.imeMode = 'auto';

   }

   else if ( ctl.imeMode == 'disabled' ) // 한글불가

   {

    ctl.style.imeMode = 'disabled';

   }

  }

 }

}

 

  서버측에서

Page_Load 시에

Page.RegisterStartupScript("SetImeMode", "<script language='language'>SetImeMode();</script>");

 이 코드를 추가합니다.

 Page 클래스를 상속받은 BasePage 의 Load 이벤트에서 실행하게 해서

 그 BasePage 를 상속받도록 해도 되겠죠..

 textbox 에서는 일단 아무것도 지정하지 않으면 한글우선이 될 것입니다.

 그래도 만약에 영문우선이 되게 하고 싶다면..

 <asp:TextBox runat=server id=txtData imeMode=inactive/> 이렇게 옵션을 주시고요..

 음 절대 한글을 입력받고 싶지 않다면

 <asp:TextBox runat=server id=txtData imeMode=disabled/> 이렇게 옵션을 주시면 됩니다.

 음 이전 설정을 따라가고 싶다면

만약에 이전에 한글모드로 바꿨을 경우 한글입력모드고

이전에 영문모드였으면 영문입력모드로 되는 경우

<asp:TextBox runat=server id=txtData imeMode=auto/> 이렇게 옵션을 주시면 됩니다.

 

도움이 되셨는지 모르겠네요..^^

반응형

댓글