是否有任何好的免费/开源时间选择控件与ASP.NET日历控件配合良好?
答案 0 :(得分:33)
您的问题的答案是是,有任何良好的免费/开源时间选择器控件,与ASP.NET日历控件配合良好。
ASP.NET Calendar控件只写一个html表。
如果您使用的是HTML5和DOT.NET Framework 4.5,则可以使用ASP.NET TextBox控件,并将TextMode属性设置为" Date"或" Month&#34 ;或者"周"或者"时间"或" DateTimeLocal"或者,如果您不使用Chrome或Firefox或Internet Explorer,则您还可以将此属性设置为" DateTime"。
然后读取Text属性以从TextBox中获取日期,时间,月或周作为字符串。
如果您使用的是DOT.NET Framework 4.0或更早版本,那么您可以使用html5输入类型="日期"或输入类型="月"或输入类型="周"或输入类型="时间"或输入类型=" datetime-local"或者如果您不使用Chrome或Firefox或Internet Explorer,那么您也可以使用输入类型=" datetime"。
如果您需要在服务器端代码(用C#或Visual Basic编写)用户在日期字段中输入的信息,那么您可以尝试通过在输入标记{{1内写入 - 在服务器上运行此元素}}
还要为此元素指定一个id,以便您可以在服务器端代码上访问它。 读取Value属性以将输入日期,时间,月份或周作为字符串。如果您无法在服务器上运行此元素,那么除了输入类型=" date"之外,还需要一个隐藏字段。或"时间"或"月"或者"周"。 在提交函数(用javascript编写)中,将隐藏字段的值设置为输入类型的值="日期"或者"时间"或者"月&# 34;或者"周",然后在服务器端代码上,将该隐藏字段的Value属性读作字符串。
确保html的隐藏字段元素可以在服务器上运行。
希望有所帮助。
答案 1 :(得分:25)
JQuery拥有最好的datepicker恕我直言。虽然它不是特定的.Net仍然很有用。
HTML:
<input type="text" value="9/23/2009" style="width: 100px;" readonly="readonly" name="Date" id="Date" class="hasDatepicker"/>
在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"/>
这很简单!
答案 2 :(得分:8)
由于这是我用过的唯一一个,我会建议http://www.ajaxcontroltoolkit.com/
中的CalendarExtender答案 3 :(得分:6)
在文本框中添加以下内容:
textmode="Date"
它为您提供美观的Datepicker,如下所示:
此的其他变体是:
textmode="DateTime"
它给你这样的样子:
textmode="DateTimeLocal"
答案 4 :(得分:4)
这是没有jquery的解决方案。
在WebForm中添加日历和文本框 - &gt; WebForm的来源有:
define(['loginApp'], function(app)
{
app.controller('loginController',
[
'$scope',
function($scope)
{
//...
}
]);
});
在WebForm的cs文件中创建方法:
<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="DateChange">
</asp:Calendar>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
方法DateChange与Calendar事件SelectionChanged连接。它看起来像这样: DatePicker Image
答案 5 :(得分:3)
这是他们的旗舰产品的免费版本,但它包含asp.net的日期和时间选择器。
答案 6 :(得分:3)
如果您使用的是bootstrap,请尝试bootstrap-datepicker。
答案 7 :(得分:2)
有一个简单的,开箱即用的实现:HTML 5 input type="date"
和其他与日期相关的输入类型。
好的,你可以设置很多控件的样式doesn't work on every browser,但如果所有现代浏览器都支持它并且不想要它,那么从长远来看它仍然是一个非常好的选择包括重型图书馆,这些图书馆在移动设备上总是不那么好用。
答案 8 :(得分:2)
<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" />
答案 9 :(得分:0)
如果要使用文本框,请注意将TextMode属性设置为“ Date”在Internet Explorer 11上将不起作用,因为它当前不支持“ Date”,“ DateTime”或“ Time” “值。
此示例说明了如何使用文本框来实现它,包括日期的验证(因为用户只能输入数字)。它可以在Internet Explorer 11以及其他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>
答案 10 :(得分:0)
@Html.EditorFor(model => model.Date, new { htmlAttributes = new { @class = "form-control", @type = "date" } })
这很好用