2014-05-21 41 views
4

有一个奇怪的问题。我有简单的页面与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财产,我设法得到价值。但为什么我不能将TextBoxtTextMode设置为NumberUpdatePanel

回答

5

它是a known issue,.NET 4.5 RTM中有一个修复程序。

说明

HTML5具有用于输入标签的新类型,例如类型=“号码”,这是 需要使手机显示数字键盘,而不是一个 文字键盘。在完成页面的全部回发时,它可以在所有 浏览器中运行。但如果我把它们放在网站上的一个更新面板上做一个 部分回发,那么在这些新的类型(Safari/WebKit和歌剧)。它在IE8和Firefox 4中正确运行 ,但可能仅仅是因为它们有 没有实现这些新类型,并且回退到将其理解为 a type =“text”字段。

这是另一个有关此问题和解决方法的问题:UpdatePanel with input type other than text in html5

相关问题