Asp.net ';System.Web.UI.WebControls.TextBoxMode';不包含';日期';
错误消息: “System.Web.UI.WebControl.TextBoxMode”不包含“日期”的定义 代码:Asp.net ';System.Web.UI.WebControls.TextBoxMode';不包含';日期';,asp.net,Asp.net,错误消息: “System.Web.UI.WebControl.TextBoxMode”不包含“日期”的定义 代码: 检查以下各项 说明中说,asp文本框的Textmode属性只能设置为以下3个选项 密码:如果您想在文本框中将输入显示为点(密码类型),可以选择此模式 单行:用于将文本框保留为单行字段 多行:用于将textbox设置为commentbox,即具有多行 我认为所有TextBoxMode值都适用于.net framework 4.0或更低版本,现在这三个值都受支持。在.net 4.5
检查以下各项
说明中说,asp文本框的Textmode属性只能设置为以下3个选项
密码
:如果您想在文本框中将输入显示为点(密码类型),可以选择此模式
单行
:用于将文本框保留为单行字段
多行
:用于将textbox设置为commentbox,即具有多行
我认为所有TextBoxMode
值都适用于.net framework 4.0或更低版本,现在这三个值都受支持。在.net 4.5中受支持,但浏览器支持是部分的
使用ASP.net 4.5,您可以将此属性与更多值(如日期)一起使用-有关详细信息,请参阅文档。然而,截至2014年9月,据报道只有50%的用户能够正确使用它。如果您知道目标浏览器具有支持,请删除CalendarExtender
,并将项目更改为目标.net 4.5
在VS2012中发布TextMode='Date'时出现问题
此外,如果使用预编译集发布,则需要选中“允许预编译站点可更新”,否则将出错(至少在VS2012中-如果我找到了解决方案,我将更新我的答案)
退回到ASP.net组件来完成这项工作
但是,您可以使用ASP.netCompareValidator
和CalendarExtender
<asp:TextBox ID="lastDate" runat="server" autocomplete="off" />
<ajax:CalendarExtender ID="lastDate_CalendarExtender" runat="server"
Enabled="True" TargetControlID="lastDate" />
<asp:CompareValidator ID="CompareValidator2" runat="server"
ControlToValidate="txtDateDiscIssued"
ErrorMessage="* invalid"
Operator="DataTypeCheck"
Type="Date" />
也许我添加2美分的时间太晚了,但我认为这可能会对未来的一些人有所帮助。正如Rob所提到的,由于.Net 4.5,您可以对
asp:TextBox
使用TextMode=“Date”
,但浏览器支持可能会受到限制,因为这将使您的文本框在页面输出中显示为HTML5日期类型的文本框。在我写这篇文章时,大多数现代浏览器都支持HTML5
然而,如果这是您想要的,那么您的标记就没有问题
<asp:TextBox ID="lastDate" runat="server" autocomplete="off" TextMode="Date" />
如果在VisualStudio中看到此错误消息,很可能是因为目标框架版本不正确
按如下所示更改Web.Config中的Target Framework属性以消除此错误
Web.Config>configuration>system.Web>编译
希望这有助于肯定不是修复错误的方法,但您可以通过添加html属性
type
而不是TextMode
来避免它
type="date"
ASP.NET文本框控件不支持新的HTML 5输入类型。尝试一下我发布的解决方案之一。
<compilation debug="true" defaultLanguage="C#" targetFramework="4.5" />
type="date"