我正在开发一个使用ASP.NET渲染HTML5的开源项目.在这里你可以看看:http: //asphtml5.codeplex.com/
现在我在更新面板时遇到问题,回复了"text"以外的类型的输入值.你可能知道,html 5引入了几种输入类型,例如'number','tel','search'等.现在,如果我渲染这样的控件,一切正常情况下工作正常,但如果我把它们放入UpdatePanel,没有值将被回发,值将被重置.
这是一小段产生相同错误的代码:
<asp:UpdatePanel runat="server" ID="UP">
<ContentTemplate>
<p>
Enter A Number:
<asp:TextBox runat="server" ID="Number2" type="number" />
</p>
<asp:Button Text="Submit" runat="server" ID="BtnSubmit" OnClick="BtnSubmit_Click" />
<p>
You entered :
<asp:Label Text="" ID="LblValue" runat="server" />
</p>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
如果您在支持html 5的浏览器上测试此代码,请以Chrome为例,将显示Numeric Up-Down字段.但是如果单击提交按钮,它将丢失您输入的值.
这是事件处理程序的代码:
protected void BtnSubmit_Click(object sender, EventArgs e)
{
LblValue.Text = Number2.Text;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过的是读取UpdatePanel,ScriptManager和ScriptManagerProxy类代码,没有找到.
我想我可能需要创建自己的UpdatePanel和/或ScriptManager类来使用.
任何人都可以帮助我,并告诉我在哪里检查.
我读了很多关于这个的话题,但我也遇到了.NET 4.5上Textmode ="Time"属性的问题.
我在aspx方面有这个:
<asp:TextBox runat="server" ID="txtBoxStartTime" TextMode="Time"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
在vb.net方面,当我尝试从这个文本框中获取Text值时,我只有空字符串("").
CDate(txtBoxStartTime.Text)
Run Code Online (Sandbox Code Playgroud)
在客户端,在webInspector中我可以轻松地从文本框中获取值,但我需要在服务器端...
即使我尝试使用runat ="server"的HTML5标签,我也会遇到同样的问题.
我注意到问题与Framework 4.5上的所有Textmode属性相同
对此有何建议/解决方案?我非常感谢您的投入!
谢谢!