2014-05-21 43 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

相關問題