【问题标题】:asp.net Gridview with date selection带有日期选择的 asp.net Gridview
【发布时间】:2013-12-04 17:40:22
【问题描述】:

我有一个简单的gridview,我想用它来更新一个SQL 表。我使用模板字段设置了gridview。前 5 列是数据报告字段,如客户、工作名称等。这些字段不可编辑。接下来的字段都是日期字段。用户将编辑一行并添加活动的日期。第一列是导入日期,因此用户将输入 12/4/2013。我在想有一个日期选择器会很好。由于需要报告 10 多个阶段,这可能会使编辑变得非常困难。那么有没有办法代替日期选择器来检查用户在输入时是否输入了有效的日期格式?如果用户输入 12/4/2013(美国日期格式),这是可以接受的。但如果他们输入 2013 年 12 月 32 日,它会将该日期视为无效日期而拒绝?

下面是我如何在 gridview 中为前 5 列设置模板字段的代码。我希望用它来创建编辑模板。

<asp:TemplateField HeaderText="Pages">
<ItemTemplate>
<asp:Label ID="lblPages" runat="server" Text='<%# Eval("Pages")%>'>
</asp:Label>
</ItemTemplate>
<HeaderStyle Width="60px" HorizontalAlign="Center"/>
<ItemStyle Width="60px" HorizontalAlign="Right" />
</asp:TemplateField>

【问题讨论】:

  • 任何客户端日期选择器插件/小部件/等。将处理日期选择功能(例如 jQuery UI Datepicker)。不过,您仍然需要验证所有输入服务器端。对于任何应该是日期的给定字符串输入,您需要使用DateTime.TryParse() 之类的东西来确保它是有效日期。有一些服务器端日期选择器组件(我不知道任何免费的)可以在内部为您处理此验证。或者 ASP.NET MVC 中的模型绑定之类的东西也会为您强输入日期输入。

标签: asp.net validation gridview


【解决方案1】:

听起来您想使用CompareValidator 并将Operator 设置为DataTypeCheck 并将Type 设置为Date

<asp:TextBox ID="ImportDate" runat="server" ... />

<asp:CompareValidator runat="server"
    ControlToValidate="ImportDate"
    Operator="DataTypeCheck"
    Type="Date"
    Display="Dynamic"
    Text="*"
    ErrorMessage="Import date is invalid"
    ToolTip="Please enter a valid date"
/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-16
    • 2012-08-26
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多