2010-03-03 13 views
2

내 마스터 페이지에 2 개의 이미지 버튼을 추가했습니다. 그들의 목적은 사이트의 언어를 변경하는 것입니다. ImageButton 이상한 동작

<div id="SiteHeader"> 
       <asp:ImageButton ID="imgBtnBulgarian" runat="server" ImageUrl="~/App_Themes/Default/images/bg flag.png" AlternateText="Bulgarian" OnClick="imgBtnBulgarian_Click" ValidationGroup="language" /> 
       <asp:ImageButton ID="imgBtnEnglish" runat="server" ImageUrl="~/App_Themes/Default/images/english flag.png" AlternateText="English" OnClick="imgBtnEnglish_Click" ValidationGroup="language" /> 
      </div> 

그들은 잘 작동

protected void imgBtnEnglish_Click(object sender, EventArgs e) 
    { 
     Session["language"] = "en-GB"; 
     Response.Redirect(Request.Url.AbsoluteUri); 
    } 

    protected void imgBtnBulgarian_Click(object sender, EventArgs e) 
    { 
     Session["language"] = "bg-BG"; 
     Response.Redirect(Request.Url.AbsoluteUri); 
    } 

뒤에있는 코드입니다. 문제는 컨텐츠 플레이스 홀더에 양식이있을 때 발생합니다. 예를 들어 로그인 양식. 입력란에 데이터를 입력하고 로그인 버튼을 클릭하는 대신 입력을 누르면 ImageButton 중 하나가 클릭됩니다. 마우스로 로그인 버튼을 클릭하면 제대로 작동합니다. 이 문제를 해결하도록 도와 주시겠습니까?

+0

당신이 그냥 그래서 ** 왜 ** 부분 : 브라우저의 기본값이 찾은 첫 번째 버튼을 클릭에 입력하기 때문에이 발생합니다. 솔루션에 대한 Arthur의 답변을 참조하십시오. –

답변

3

한 가지 해결책은 asp : Panel에 로그인 컨트롤을 넣고 DefaultButton 속성을 로그인 버튼으로 설정하는 것입니다.

의사 코드 :

<asp:Panel runat=server DefaultButton=btnLogin> 
    Account: <asp:TextBox id=txtAccount ... /> 
    Password: <asp:TextBox id=txtAccount ... /> 
    <asp:Button id=btnLogin runat=server Text=Login ... /> 
</asp:Panel> 
+0

맞습니다. 이것은 가장 간단한 비 자바 스크립트 (어쨌든 작성한 것) 솔루션입니다. –

+0

그것은 작동합니다. 고맙습니다. –

+0

2 개 또는 3 개의 패널을 중첩 할 수 있습니다. 각 패널에 다른 DefaultButton 속성을 설정할 수 있습니까? –