遇到奇怪的问题。我有一个简单的页面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>
After Button
单击我尝试获取TextBox
value:
public partial class test : Page {
protected void confirmButton_Click(object sender, EventArgs e) {
var answer = amountTextBox.Text;
}
}
但它是空的。如果我删除UpdatePanel
,我设法获得该值。如果我离开UpdatePanel
并删除TextMode
财产,我设法获得价值。但为什么我不能拥有TextBoxt
with TextMode
set to Number
in UpdatePanel
?
It is 一个已知问题 http://connect.microsoft.com/VisualStudio/feedback/details/651085/partial-postback-updatepanel-do-not-post-new-html5-input-fields-type-number,.NET 4.5 RTM 中提供了修复。
描述
HTML5为输入标签提供了新的类型,例如type=“number”,即
需要让手机显示数字键盘而不是数字键盘
文本键盘。当进行页面的完整回发时,它适用于所有
浏览器。但是如果我将这些放在网站上的更新面板中以执行
部分回发,则不包含任何新的 HTML 输入类型
在从那些浏览器到服务器的回发响应中
理解这些新类型(Safari/WebKit 和 Opera)。有用
在 IE8 和 Firefox 4 中正确,但可能只是因为它们有
没有实现这些新类型并回退到将其理解为
type="text" 字段。
这是与此问题相关的另一个问题和解决方法:UpdatePanel 的输入类型不是 html5 中的文本 https://stackoverflow.com/questions/8649343/updatepanel-with-input-type-other-than-text-in-html5.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)