使用TextMode Number回发后,TextBox会丢失值

时间:2014-05-21 07:41:43

标签: asp.net textbox updatepanel

有奇怪的问题。我有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属性,我会设法获得该值。但是为什么我TextBoxt TextMode Number UpdatePanel设置为{{1}}后才能{{1}}?

1 个答案:

答案 0 :(得分:5)

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

描述

  

HTML5具有输入标记的新类型,例如type =&#34; number&#34;,即   需要让手机显示数字键盘而不是   文字键盘。在完成页面的完整回发时,它可以全部工作   浏览器。但是,如果我将这些放在网站上的更新面板上来做   部分回发,然后没有包含新的HTML输入类型   在那些浏览器的回发响应中   了解这些新类型(Safari / WebKit和Opera)。有用   正确地在IE8和Firefox 4中,但可​​能只是因为他们有   没有实现这些新类型,并回退到理解它   a type =&#34; text&#34;字段。

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