3

我有两个重要的问题。

1) DateTimePicker 运行良好,<input type="text" name="date" id="date"/> 但没有 css 效果和颜色。2)<%Html.EditorFor(m => m.StartDateTime, new { @class = "datepicker" })%>不工作。没有显示日期时间选择器。

如何制作 jquery datetimepicker。我的参考文章是: http: //geekswithblogs.net/michelotti/archive/2010/02/05/mvc-2-editor-template-with-datetime.aspx


<link rel="stylesheet" href="../../Styles/jquery.ui.all.css"  type="text/css" />
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-1.7.2.min.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-ui.js") %>"></script>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery.ui.datepicker.js") %>"></script>

<script type="text/javascript">
    $(document).ready(function () {
        $('.datepicker').datepicker({});
        $('#date').datepicker({});

    });
</script>





<table>
<tr><td><input type="text" name="date" id="date" /></td></tr>
<tr><td><%:Html.LabelFor(m=>m.StartDateTime) %></td><td><%:Html.EditorFor(m => m.StartDateTime, new { @class = "datepicker" })%></td></tr>
</table

4

3 回答 3

3

对于第二个问题,使用 Html.TextBoxFor 而不是 EditorFor 来获取 html 属性。

Html.TextBoxFor(model => model.Date, new { @class = "datePick", Value = Model.Date.ToString("MM/dd/yyyy") })

对于您的第一个问题,您的路径是否正确?我使用 Url.Content 来获取它

于 2012-07-10T11:16:10.137 回答
3

程序员,这就是我前一阵子的做法。

使用名称 DateTime.aspx 创建模板编辑器:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %>

<%string name = ViewData.TemplateInfo.HtmlFieldPrefix;%>
<%string id = name.Replace(".", "_");%>

<div class="editor-label">
    <%= Html.LabelFor(model => model) %>
</div>
<div class="editor-field">
    <%= Html.TextBox("", (Model.HasValue ? Model.Value.ToString("dd-MM-yyyy") : string.Empty), new { @class = "date" }) %>
    <%= Html.ValidationMessageFor(model => model)%>
</div>      

<script type="text/javascript">
    $(document).ready(function() {
        $("#<%=id%>").datepicker({
            dateFormat: 'dd-mm-yy',
            changeMonth: true,
            changeYear: true,
            showOn: 'button', 
            buttonImage: '<%=Url.Content("~/Content/images/calendar.gif") %>'
        });
    });
</script>

然后在您看来简单地这样称呼它:

<%= Html.EditorFor(m => m.StartDate) %>

干杯...

于 2012-07-10T11:16:10.300 回答
1

尝试使用 Html.TextBoxFor 而不是 Html.EditorFor:

<%:Html.TextBoxFor(m => m.StartDateTime, new { @class = "datepicker" })%> 

对于 CSS 问题,请使用:

<link rel="stylesheet" href="<%= Url.Content("~/Styles/jquery.ui.all.css") %>"  type="text/css" />
于 2012-07-10T11:10:51.353 回答