mvc与My97DatePicker插件的结合
Razor视图引擎与My97DatePicker插件的结合
![](https://common.cnblogs.com/images/copycode.gif)
1 using System;
2 using System.Collections.Generic;
3 using System.Runtime.CompilerServices;
4 using System.Linq.Expressions;
5
6 namespace System.Web.Mvc
7 {
8 /// <summary>
9 /// Extended the HtmlHelper for Calendar
10 /// </summary>
11 public static class CalendarExtensions
12 {
13 private static string defaultFormat = "yyyy-MM-dd";
14
15 /// <summary>
16 /// 使用特定的名称生成控件
17 /// </summary>
18 /// <param name="helper">HtmlHelper对象</param>
19 /// <param name="name">控件名称</param>
20 /// <returns>Html文本</returns>
21 public static MvcHtmlString Calendar(this HtmlHelper helper, string name)
22 {
23 return Calendar(helper, name, defaultFormat);
24 }
25
26 /// <summary>
27 /// 使用特定的名称生成控件
28 /// </summary>
29 /// <param name="helper">HtmlHelper对象</param>
30 /// <param name="name">控件名称</param>
31 /// <param name="format">显示格式</param>
32 /// <returns>Html文本</returns>
33 public static MvcHtmlString Calendar(this HtmlHelper helper, string name, string format)
34 {
35 return GenerateHtml(name, null, format);
36 }
37
38 /// <summary>
39 /// 使用特定的名称和初始值生成控件
40 /// </summary>
41 /// <param name="helper">HtmlHelper对象</param>
42 /// <param name="name">控件名称</param>
43 /// <param name="date">要显示的日期时间</param>
44 /// <returns>Html文本</returns>
45 public static MvcHtmlString Calendar(this HtmlHelper helper, string name, DateTime date)
46 {
47 return Calendar(helper, name, date, defaultFormat);
48 }
49
50 /// <summary>
51 /// 使用特定的名称和初始值生成控件
52 /// </summary>
53 /// <param name="helper">HtmlHelper对象</param>
54 /// <param name="name">控件名称</param>
55 /// <param name="date">要显示的日期时间</param>
56 /// <param name="format">显示格式</param>
57 /// <returns>Html文本</returns>
58 public static MvcHtmlString Calendar(this HtmlHelper helper, string name, DateTime date, string format)
59 {
60 return GenerateHtml(name, date, format);
61 }
62
63 /// <summary>
64 /// 通过lambda表达式生成控件
65 /// </summary>
66 /// <param name="helper">HtmlHelper对象</param>
67 /// <param name="expression">lambda表达式,指定要显示的属性及其所属对象</param>
68 /// <returns>Html文本</returns>
69 public static MvcHtmlString CalendarFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
70 {
71
72 return CalendarFor(helper, expression, defaultFormat);
73 }
74
75 /// <summary>
76 /// 通过lambda表达式生成控件
77 /// </summary>
78 /// <param name="helper">HtmlHelper对象</param>
79 /// <param name="expression">lambda表达式,指定要显示的属性及其所属对象</param>
80 /// <param name="format">显示格式</param>
81 /// <returns>Html文本</returns>
82 public static MvcHtmlString CalendarFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, string format)
83 {
84 string name = ExpressionHelper.GetExpressionText(expression);
85 DateTime value;
86
87 object data = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, helper.ViewData).Model;
88 if (data != null && DateTime.TryParse(data.ToString(), out value))
89 {
90 return GenerateHtml(name, value, format);
91 }
92 else
93 {
94 return GenerateHtml(name, null, format);
95 }
96 }
97
98 /// <summary>
99 /// 通过lambda表达式获取要显示的日期时间
100 /// </summary>
101 /// <param name="helper">HtmlHelper对象</param>
102 /// <param name="expression">lambda表达式,指定要显示的属性及其所属对象</param>
103 /// <param name="format">显示格式</param>
104 /// <returns>Html文本</returns>
105 public static MvcHtmlString CalendarDisplayFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, string format)
106 {
107 string name = ExpressionHelper.GetExpressionText(expression);
108 DateTime value;
109 string Htmlstr = "";
110 object data = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, helper.ViewData).Model;
111 if (data != null && DateTime.TryParse(data.ToString(), out value))
112 {
113 Htmlstr = value.ToString(format);
114 }
115 else
116 {
117 Htmlstr = string.Empty;
118 }
119 return MvcHtmlString.Create(Htmlstr);
120 }
121
122 /// <summary>
123 /// 通过lambda表达式获取要显示的日期时间
124 /// </summary>
125 /// <param name="helper">HtmlHelper对象</param>
126 /// <param name="expression">lambda表达式,指定要显示的属性及其所属对象</param>
127 /// <returns>Html文本</returns>
128 public static MvcHtmlString CalendarDisplayFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
129 {
130 return CalendarDisplayFor(helper, expression, defaultFormat);
131 }
132
133 /// <summary>
134 /// 生成输入框的Html
135 /// </summary>
136 /// <param name="name">calendar的名称</param>
137 /// <param name="date">calendar的值</param>
138 /// <returns>html文本</returns>
139 private static MvcHtmlString GenerateHtml(string name, DateTime? date, string format)
140 {
141 string Htmlstr = "";
142 if (date != null)
143 {
144 Htmlstr = "<input type=\"text\" id=\"" + name + "\" name=\"" + name + "\" onfocus=\"WdatePicker({dateFmt:'" + format + "'})\" class=\"Wdate\" value=\"" + date.Value.ToString(format) + "\" />";
145 }
146 else
147 {
148 Htmlstr = "<input type=\"text\" id=\"" + name + "\" name=\"" + name + "\" onfocus=\"WdatePicker({dateFmt:'" + format + "'})\" class=\"Wdate\" value=\"\" />";
149 }
150 return MvcHtmlString.Create(Htmlstr);
151 }
152 }
153 }
![](https://common.cnblogs.com/images/copycode.gif)
使用方法
<td class="ms-ri">出生日期:</td>
<td style="vertical-align: middle">
@Html.CalendarFor(m => m.Birthday)
</td>
mvc与My97DatePicker插件的结合的更多相关文章
- MVC框架的插件与拦截器基础
自制MVC框架的插件与拦截器基础 上篇谈到我自己写的MVC框架,接下来讲讲插件及拦截器! 在处理一些通用的逻辑最好把它封装一个插件或者拦截器,以便日后可以直接拿过来直接使用.在我的框架中可以通过继承以 ...
- Asp.Net MVC Razor视图引擎与My97DatePicker插件的结合
using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using System. ...
- 使用asp.net mvc引擎开发插件系统
一.前言 我心中的插件系统应该是像Nop那样(更牛逼的如Orchard,OSGI.NET),每个插件模块不只是一堆实现了某个业务接口的dll,然后采用反射或IOC技术来调用,而是一个完整的mvc小应用 ...
- .NET MVC 简单的插件式开发
插件式开发的优势 1.提高软件的复用度 2.提高软件开发的并行性 3.缩短软件的研发周期.节约研发成本,带给程序开发人员更多的灵活性,产品在软件发布以后还可以添加新的插件和完善已有的功能. 4.方便软 ...
- ASP.NET MVC:模块化/插件式文章汇总
方案 Shazwazza | Developing a plugin framework in ASP.NET MVC with medium trust 基于ASP.NET MVC3 Razor的模 ...
- 自制MVC框架基础插件介绍
本文介绍的基础插件不是实现BeforehandCommonAttribute或ProceedPlugin的postsharp插件,这些都是自定义的基础性的拦截,而且在项目中经常用到. 1). Comp ...
- 自制MVC框架的插件与拦截器基础
上篇谈到我自己写的MVC框架,接下来讲讲插件及拦截器! 在处理一些通用的逻辑最好把它封装一个插件或者拦截器,以便日后可以直接拿过来直接使用.在我的框架中可以通过继承以下抽象类来实现插件或者拦截器. 1 ...
- ASP.NET MVC jQuery 树插件在项目中使用方法(一)
jsTree是一个 基于jQuery的Tree控件.支持XML,JSON,Html三种数据源.提供创建,重命名,移动,删除,拖"放节点操作.可以自己自定义创建,删 除,嵌套,重命名,选择节点 ...
- MVC 数据列表显示插件大全
Jgrid 官网示例: http://www.trirand.net/demo/aspnet/mvc/jqgrid/ Code Project示例: http://www.codeproject.co ...
随机推荐
- HDU 3954 Level up(线段树)
HDU 3954 Level up 题目链接 题意:k个等级,n个英雄,每一个等级升级有一定经验,每次两种操作,一个区间加上val,这样区间内英雄都获得当前等级*val的经验,还有一个操作询问区间经验 ...
- nginx subrequest演示示例程序
只有简单subrequest应用演示示例. nginx.conf文件: #user nobody; worker_processes 1; #error_log logs/error.log; #er ...
- BZOJ 1269 文本编辑器 Splay
题目大意:维护一个文本编辑器,支持下列操作: 1.将光标移动到某一位置 2.在光标后插入一段字符串 3.删除光标后的一段字符 4.翻转光标后的一段字符 5.输出光标后的一个字符 6.光标-- 7.光标 ...
- Ext4功能和文件系统的简单功能
Linux kernel 自 2.6.28 開始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,改动了 Ext3 中部分重要的数据结构,而不只像 Ext3 对 Ext2 那样,不过 ...
- WPF 数字小键盘Themes
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- Docker创建支持ssh服务的容器和镜像
原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...
- 如何判断一个Http Message的结束——python源码解读
HTTP/1.1 默认的连接方式是长连接,不能通过简单的TCP连接关闭判断HttpMessage的结束. 以下是几种判断HttpMessage结束的方式: 1. HTTP协议约定status ...
- Windows IOT
Windows IOT 开发入门(准备工作) 终于抽出空来了,将最近研究的东西记录下来,物联网,万物皆可联网.然后可以做到智能家居,智能生活,智能城市....一大堆.吹牛的就不说了. 在实际应用中 ...
- 【Android进阶】让程序运行效率更高的编程技巧总结
1.在程序中若出现字符串连接的情况,请使用StringBuffer代替String,这样可以减少多次创建String以及垃圾回收所带来的内存消耗 2.尽量使用局部变量.调用方法时传递的参数以及调用中创 ...
- Sublime Text 3 最性感的编辑历史
↑ ↑ ↑ ↑ ↑ 请参阅文件夹 ↑ ↑ ↑ ↑ ↑ 下载 / 装 windows / MAC OS 官网下载.双击安装,这个都会吧- linux linux下安装.一种办法是从官网下载 tar.bz ...