视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
asp.net mvc4中bootstrap datetimepicker控件的使用
2020-11-27 22:36:33 责编:小采
文档

前段时间写了一篇关于调用阿里大于的短信接口来开发例会短信群发通知功能的文章//www.gxlcms.com/article/94142.htm,其中的例会时间是需求中的重中之重,它需要满足“格式化”,“易输入”这两点,对短信费用关心的开发者要知道长短信是两条短信费用之和,因此,例会时间不能随意交给用户自定义输入;要考虑到“易输入”这点,只能选择日期选择控件来辅助用户输入,由于日期选择控件较为小巧使用,在页面中引入并不是难事。在本篇文章中,使用的是bootstrap的datetimepicker控件,如今bootstrap广泛使用,加之项目里用的也是bootstrap框架快速搭建界面的,这样一来选择这款日期控件也能较省资源,在这里呈上它的效果图:

  这里想分享以下我在引入datetimepicker资源时遇到的一个问题解决方法,这里你需要引入bootstrap-datetimepicker.css和bootstrap-datetimepicker.js,但是引入资源前,你需要在asp.net mvc 中的BundleConfig.cs稍作改变,要说明的是,这个日期控件依赖jquery.js和bootstrap.js,这些资源引用有时要考虑有先后顺序,应该先引用jquery.js再bootstrap.js便是bootstrap-datetimepicker.js。如果遇到控件点击无反应,可以使用火狐浏览器在控制台查看页面遇到的错误。

  在引用完资源后,这里对html结构不再说。要知道的在下载的控件zip压缩包里,有示例html,这很方便进行操作。现在解决了易输入的需求,再之是格式化,好在这个日期控件得到的日期时间已经是规范化的,但有一个问题,选择的时间是英文的,是否需要汉化也是一个考虑的方向。

  项目里对时间要求的格式为如:10月04。这里不考虑汉化,在后台代码中对字符串处理,得到预期的时间日期。这里可以采用ajax提交选择的日期。先在在action中做处理:

 public ActionResult SmsSendForMeeting(FormCollection Form)
 { 
 string Operator = Form["Operator"] ;//发送者
 string Department =Form["Department"] ;//部门名称
 string Time = Form["Time"].ToString();//设定的时间
 //对日期进行处理
 //日期格式:"18 September 2016 - 08:30 pm"
 Time = sp.DateParse(Time);//调用日期处理函数 
 //省略其他无关代码
 return View();
 } 

  这里用到了DateParse()方法,这是解决日期格式转换的方法。这里的思路就两条,一个是将年份和空格去掉,一个便是将英文月份转换为数字月份,也就是string的操作。

 public string DateParse(string Time)
 {
 //string Time = "19 January 2016 - 09:00 pm";
 Time = Time.Replace(" ", "");//去除空格
 string day = Time.Substring(0, 2) + "日";//取出“日”
 int c = Time.LastIndexOf(":") - 2;
 string DetailTime = Time.Substring(c);//具体到小时分钟 
 int b = Time.LastIndexOf("201");//这里不是2016
 Time = Time.Remove(b);
 string month = Time.Remove(0, 2);//月份 
 switch (month)
 {
 case "January":
 month = "1月";
 break;
 case "February":
 month = "2月";
 break;
 case "March":
 month = "3月";
 break;
 case "April":
 month = "4月";
 break;
 case "May":
 month = "5月";
 break;
 case "June":
 month = "6月";
 break;
 case "July":
 month = "7月";
 break;
 case "August":
 month = "8月";
 break;
 case "September":
 month = "9月";
 break;
 case "October":
 month = "10月";
 break;
 case "November":
 month = "11月";
 break;
 case "December":
 month = "12月";
 break;
 }
 string DateTime = month + day + DetailTime;//得到->9月18日08:30pm 
 return DateTime;
 }


  这里就是用到的switch ()函数和string操作如substring、replace、indexof、remove等,处理的思路有许多,在这里是从左到右处理字符串。DateParse()函数最后返回就是需要的10月4日,这样就满足了对例会短信日期“格式化”和“易输入”的需求。如果我思路和方法有误,恳请各位指正,虚心求教。

下载本文
显示全文
专题