错误讯息: ' System.Web.UI.WebControls.TextBoxMode'不包含'日期'的定义
代码:
<asp:TextBox ID="lastDate" runat="server" autocomplete="off" TextMode="Date" ></asp:TextBox>
<ajax:CalendarExtender ID="lastDate_CalendarExtender" runat="server"
Enabled="True" TargetControlID="lastDate">
答案 0 :(得分:13)
也许我加入2美分已经很晚了,但我认为这可能会对将来的某些人有所帮助。正如Rob所提到的,自.Net 4.5以来,您可以使用TextMode="Date"
作为asp:TextBox
,但浏览器支持可能会受到限制,因为这会在页面输出中将TextBox呈现为HTML5日期类型文本框。大多数现代浏览器在我撰写本文时都支持HTML5。
但是,如果这是你想要的,那么你的标记没有问题。
<asp:TextBox ID="lastDate" runat="server" autocomplete="off" TextMode="Date" />
如果在Visual Studio Visual Studio中看到此错误消息,则很可能是因为目标框架版本不正确。
更改Web.Config中的Target-Framework属性,如下所示,以消除此错误。
Web.Config&gt;配置&gt; system.web&gt;汇编
<compilation debug="true" defaultLanguage="C#" targetFramework="4.5" />
希望这有帮助
答案 1 :(得分:4)
检查以下MSDN Link
描述说asp文本框的Textmode属性只能设置为以下3个选项。
Password
:如果要将文本框中的输入显示为点(密码类型),则可以选择此模式。
Single Line
:用于将文本框保留为单行字段。
Multiline
:用于将文本框设置为注释框,即具有多行......
我认为所有TextBoxMode
值都适用于.net framework 4.0或更低版本,现在支持这三个值。
答案 2 :(得分:2)
使用ASP.net 4.5,您可以将此属性与更多值一起使用,例如Date - 请参阅TextBoxMode的文档。但是,截至2014年9月,caniuse.com报告只有50%的用户可以正常使用它。如果您知道您定位的浏览器有支持,请删除CalendarExtender
并将项目更改为目标.net 4.5。
此外,如果您使用预编译集发布,则需要选中“允许预编译的站点可更新”或者它将出错(至少在VS2012中 - 如果我找到解决方案,我会更新我的回答)。
但是,您可以使用ASP.net CompareValidator
和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" />
答案 3 :(得分:0)
绝对不是解决错误的方法,但是您可以通过添加html属性type
而不是TextMode
来避免该错误。
type="date"