2014-05-21 2 views
4

이상한 문제가 발생했습니다. 내가 TextBox 값을 얻으려고TextMode로 포스트 백한 후 TextBox 값이 손실됩니다.

<asp:ScriptManager runat="server" /> 
<asp:UpdatePanel runat="server"> 
    <ContentTemplate> 
     <asp:TextBox ID="amountTextBox" runat="server" TextMode="Number" /> 
     <asp:Button runat="server" Text="Confirm" OnClick="confirmButton_Click" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

클릭 Button 후 : 나는 TextBox와 함께 간단한 페이지가

public partial class test : Page { 
    protected void confirmButton_Click(object sender, EventArgs e) { 
     var answer = amountTextBox.Text; 
    } 
} 

을하지만 빈입니다. UpdatePanel을 삭제하면 값을 얻을 수 있습니다. UpdatePanel을두고 TextMode 속성을 제거하면 값을 얻을 수 있습니다. 하지만 이 Number으로 설정된 TextBoxt을 가지고 있지 않은 이유는 UpdatePanel입니다.

답변

5

a known issue이며 수정 프로그램은 .NET 4.5 RTM에서 사용할 수 있습니다.

설명

HTML5는 휴대 전화 숫자 키보드 대신 텍스트 키보드를 표시하기 위해 필요한 유형 = "숫자"로 입력 태그의 새로운 유형을 가지고 있습니다. 페이지의 전체 포스트 백을 수행하면 브라우저 모두에서 작동합니다. 그러나 이것을 웹 사이트의 업데이트 패널에 넣고 부분 게시판을 수행하면 이 새로운 유형 (Safari/WebKit 및 WebKit)을 인식하는 브라우저에서 서버에 대한 포스트 백 응답에 새로운 HTML 입력 유형이 모두 포함되지 않습니다. 오페라). 그것은 을 IE8과 Firefox 4에서 올바르게 작동하지만, 아마도 이 새로운 유형을 구현하지 않았기 때문에 그리고 유형 = "텍스트"필드로 이해할 수 있습니다.

이 문제와 해결 방법에 대한 또 다른 질문은 UpdatePanel with input type other than text in html5입니다.