ASP.NET日期时间选择器

ASP.NET日期时间选择器,asp.net,datetime,picker,Asp.net,Datetime,Picker,是否有任何好的免费/开源时间选择器控件与ASP.NET日历控件配合使用?由于它是我唯一使用的控件,我建议JQuery中的CalendarExtender具有最好的IMHO。虽然它不是特定于.Net的,但它仍然非常有效 HTML: 在head元素中: <script src="../../Scripts/jquery-1.3.2.min.js" language="javascript" type="text/javascript"/> <script src="../../

是否有任何好的免费/开源时间选择器控件与ASP.NET日历控件配合使用?

由于它是我唯一使用的控件,我建议JQuery中的CalendarExtender具有最好的IMHO。虽然它不是特定于.Net的,但它仍然非常有效

HTML:


在head元素中:

<script src="../../Scripts/jquery-1.3.2.min.js" language="javascript" type="text/javascript"/>
<script src="../../Scripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"/>

就这么简单


这是他们旗舰产品的免费版本,但它包含一个asp.net本机的日期和时间选择器。

如果您使用的是bootstrap,请尝试。

您的问题的答案是,有很好的免费/开源时间选择器控件与asp.net日历控件配合使用

ASP.NET日历控件只编写一个HTML表

如果您使用的是HTML5和.NET Framework 4.5,则可以使用ASP.NET文本框控件,并将
TextMode
属性设置为“日期”、“月份”、“周”、“时间”或“DateTimeLocal”——或者如果您的浏览器不支持此功能,则可以将此属性设置为“DateTime”。 然后,您可以读取文本属性,从文本框中以字符串形式获取日期、时间、月或周

如果您使用的是.NET Framework 4.0或旧版本,那么您可以使用HTML5的
;如果您的浏览器不支持此功能,请使用

如果用户在日期字段中输入的信息需要服务器端代码(用C#或Visual Basic编写),则可以通过在输入标记中写入
runat=“server”
来尝试在服务器上运行元素。 与所有ASP一样,请确保为该元素提供一个ID,以便您可以在服务器端访问它。 现在,您可以读取Value属性以获取字符串形式的输入日期、时间、月份或星期


如果无法在服务器上运行此元素,则除了
之外,还需要一个隐藏字段。有一个简单的现成实现:HTML5
input type=“date”
和其他与日期相关的输入类型


好的,你不能对控件进行太多的样式化,但是从长远来看,如果所有现代浏览器都支持它,并且不想包含在移动设备上不总是那么好用的繁重的库,那么它仍然是一个非常好的选择。

这是一个没有jquery的解决方案

在WebForm->Source of WebForm中添加日历和文本框有以下内容:

<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="DateChange">
</asp:Calendar>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
方法DateChange与日历事件SelectionChanged连接。看起来是这样的:
在文本框中添加以下内容:

textmode="Date"
它为您提供了如下漂亮的日期选择器:

这方面的其他变化包括:

textmode="DateTime"
它给你这样的感觉:


如果要使用文本框,请注意,将TextMode属性设置为“日期”在Internet Explorer 11上不起作用,因为它当前不支持“日期”、“日期时间”或“时间”值

此示例演示了如何使用文本框实现它,包括日期验证(因为用户可以只输入数字)。它将在InternetExplorer11以及其他web浏览器上工作

<asp:Content ID="Content"
         ContentPlaceHolderID="MainContent"
         runat="server">

<link rel="stylesheet"
    href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
   <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
   <script>
   $(function () {
   $("#
   <%= txtBoxDate.ClientID %>").datepicker();
   });
 </script>
 <asp:TextBox ID="txtBoxDate"
           runat="server"
           Width="135px"
           AutoPostBack="False"
           TabIndex="1"
           placeholder="mm/dd/yyyy"
           autocomplete="off"
           MaxLength="10"></asp:TextBox>
 <asp:CompareValidator ID="CompareValidator1"
                    runat="server"
                    ControlToValidate="txtBoxDate"
                    Operator="DataTypeCheck"
                    Type="Date">Date invalid, please check format. 
 </asp:CompareValidator>
 </asp:Content>

$(函数(){
$("#
)。日期选择器();
});
日期无效,请检查格式。
这很有效


<asp:TextBox ID="TextBox1" runat="server" placeholder="mm/dd/yyyy" Textmode="Date" ReadOnly = "false"></asp:TextBox>
<asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />

您是否看到或尝试过jQuery UI?有一个datetime选择器工作得非常好。下面是指向该选择器的链接:sebastian&john,我没有尝试过jquery。界面看起来很棒,我要试试。再次感谢。更新:我认为jQuery更好。我尝试了一下&它工作得很好。上次我尝试使用这个工具包时,我放弃了第一次需要定制/扩展的东西。源代码太可怕了。我当然希望他们从那时起有所改进,但根据我的经验(以及大量更好的Ajax控制选项,如Ext、YUI、Dojo等),我会像瘟疫一样避免使用整个库。现在,我正在使用ajaxcontroltoolkit for calendar,但它不支持时间组件MaskedEdit能给你想要的吗?它将工作,但不是非常友好的用户。它应该像前面提到的jquery演示一样轻松,但是我在将它与asp集成时遇到了问题。net@Chuck-我接受了您的解决方案,但让您知道您缺少datepicker所需的以下实例化。”$(“#Date”).datepicker();'如果我错了,请纠正我,但是这个jQuery控件不支持“DateTime”的“Time”部分。我错了吗?我看不出这个控件是如何作为日期选择器的,因为它只是一个日期选择器。@SoftwareGeek我在哪里添加这个instantiation@AbdallahRizk在标签页的底部。
textmode="DateTimeLocal"
<asp:Content ID="Content"
         ContentPlaceHolderID="MainContent"
         runat="server">

<link rel="stylesheet"
    href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
   <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
   <script>
   $(function () {
   $("#
   <%= txtBoxDate.ClientID %>").datepicker();
   });
 </script>
 <asp:TextBox ID="txtBoxDate"
           runat="server"
           Width="135px"
           AutoPostBack="False"
           TabIndex="1"
           placeholder="mm/dd/yyyy"
           autocomplete="off"
           MaxLength="10"></asp:TextBox>
 <asp:CompareValidator ID="CompareValidator1"
                    runat="server"
                    ControlToValidate="txtBoxDate"
                    Operator="DataTypeCheck"
                    Type="Date">Date invalid, please check format. 
 </asp:CompareValidator>
 </asp:Content>
@Html.EditorFor(model => model.Date, new { htmlAttributes = new { @class = "form-control", @type = "date" } })
<asp:TextBox ID="TextBox1" runat="server" placeholder="mm/dd/yyyy" Textmode="Date" ReadOnly = "false"></asp:TextBox>
<asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" />