jquery Date WdatePicker MVC

html

  <td class="data">
                             <div class="fl">
                                 <!--onclick="WdatePicker({onpicking:function(dp){if(!confirm('日期框原来的值为: '+dp.cal.getDateStr()+', 要用新选择的值:' + dp.cal.getNewDateStr() + '覆盖吗?')) return true;}})"-->
                               &nbsp;&nbsp;日期&nbsp; <input type="text" id="MeetDate" name="MeetDate" value="<%=date %>" class="w84 Wdate input" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',minDate:'%y-%M-%d',maxDate:'%y-%M-{%d+7}'})" onclick="WdatePicker({ onpicking: CurrentDate, minDate: '%y-%M-%d', maxDate: '%y-%M-{%d+7}' });" />
                            </div>
                            <div class="fl">
                              &nbsp;&nbsp; 时间&nbsp; <input type="text" id="MeetStartTime" name="MeetStartTime" value="<%=stime%>" class="w84 Wdate input" onfocus="WdatePicker({dateFmt:'HH:mm'})" onclick="WdatePicker({dateFmt: 'HH:mm' })" />
                            </div>
                            <div><input type="text" id="MeetEndTime" name="MeetEndTime" value="<%=etime %>" class="w84 Wdate input" onfocus="WdatePicker({minDate:'#F{$dp.$D(\'MeetStartTime\')}',dateFmt:'HH:mm'})" onclick="WdatePicker({ minDate: '#F{$dp.$D(\'MeetStartTime\')}', dateFmt: 'HH:mm' })" />
                            </div>
                        </td>
View Code

js

Date.prototype.Format = function (fmt) { //author: meizz   
                var o = {
                    "M+": this.getMonth() + 1, //月份   
                    "d+": this.getDate(), //
                    "H+": this.getHours(), //小时   
                    "m+": this.getMinutes(), //
                    "s+": this.getSeconds(), //
                    "q+": Math.floor((this.getMonth() + 3) / 3), //季度   
                    "S": this.getMilliseconds() //毫秒   
                };
                if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
                for (var k in o)
                    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
                return fmt;
            }
View Code
function CurrentDate() {
            var date = $("#MeetDate").val();
            var id = $("#MeetRoomID").val();
            $("#dateSpan").text(date);
            $("#meetUl").html("");
            $.ajax({
                url: "/Meet/MeetDayApplyLog",
                data: {mrid:id,time:date},
                type: "post",
                dataType: "json",
                success: function (result) {
                    if (result.success) {
                        $(result.data).each(function (index) {
                            $("#meetUl").append(" > " + new Date(this.MeetStartTime).Format("HH:mm") + " 至 " + new Date(this.MeetEndTime).Format("HH:mm") + " " + this.MeetTitle + " " + this.CreateName + "(" + this.CreateBy + ")<br/>");
                        });
                    } else {
                        $("#meetUl").append("<li style='text-align:center;'><strong>暂时没有申请记录</strong></li>");
                    }
                }
            });
        }
View Code

mvc

[HttpPost]
        public ActionResult MeetDayApplyLog(int mrid, DateTime time) {
            string sqlwhere = "";
            int recordCount = 0; ;
            sqlwhere += string.Format(" and MeetRoomID={0}", mrid);
            sqlwhere += string.Format(" and MeetStartTime>='{0}'", time.ToShortDateString() + " 00:00:00");
            sqlwhere += string.Format(" and MeetEndTime<='{0}' and MeetState in (1,2)", time.ToShortDateString() + " 23:59:59");
            DataTable dt = T_DMS_MeetApplyBll.Instance.GetPageList("  IsDelete=0  " + sqlwhere, " ID desc ", 1, 10, out recordCount).Tables[0];
            string json = HX.Common.JsonHelper.SerializeObject(new { success = dt.Rows.Count > 0 ?true:false, data = dt, msg = "" });
            return Content(json, "application/json");
        }
View Code

初始化

  <div style="width:420px;">
                                <div style="background-color: #e7f3ff;height:30px;padding-top:10px;padding-left:15px;"><strong>会议室申请情况-----------<span id="dateSpan"><%=date%></span></strong></div>
                                <ul id="meetUl">
                                    
                                     <%if (dt.Rows.Count > 0) {
                                                              for (int i = 0; i < dt.Rows.Count; i++) {
                                           %>
                                             <li>&nbsp;<%=DateTime.Parse(dt.Rows[i]["MeetStartTime"].ToString()).ToShortTimeString()%><%=DateTime.Parse(dt.Rows[i]["MeetEndTime"].ToString()).ToShortTimeString()%>
                                                     <%=dt.Rows[i]["MeetTitle"]%>
                                                    <%=dt.Rows[i]["CreateName"]%><%=dt.Rows[i]["CreateBy"]%></li>
                                        <%}
                                            } else {
                                                %>
                                    <li style="text-align:center;"><strong>暂时没有申请记录</strong></li>
                                    <%
                                            }%>
                                </ul>
                            </div>
View Code

遗留问题:onclick="WdatePicker({ onpicking: CurrentDate, minDate: '%y-%M-%d', maxDate: '%y-%M-{%d+7}' });" />

点击第一次没有执行函数:CurrentDate,之后没问题,不知道怎么回事?

问题已解决:

 onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',onpicked:CurrentDate,minDate:'%y-%M-%d',maxDate:'%y-%M-{%d+7}'})" onclick="WdatePicker({ onpicked:CurrentDate, minDate: '%y-%M-%d', maxDate: '%y-%M-{%d+7}' });" 

这两个事件的设置必须一致,或者只用其中一个事件,官方文档也没有说明。

posted @ 2018-01-25 02:29  AAABONE  阅读(209)  评论(0编辑  收藏  举报