mvc与My97DatePicker插件的结合
Razor视图引擎与My97DatePicker插件的结合

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 }

使用方法
<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 ...
随机推荐
- EXE文件结构和读取方法
一.EXE文件概念 EXE File英文全名executable file .译作可运行文件,可移植可运行 (PE) 文件格式的文件,它能够载入到内存中.并由操作系统载入程序运行,是可在操作系统存储空 ...
- 基于j2ee的程序代写MVC架构
人力资源管理系统 完成系统静态页面设计,页面数量不少于10个,页面需用CSS进行美化,并为需要验证的信息利用JavaScript提供客户端验证.要求至少包含部门信息及部门内员工信息的添加.修改.删除和 ...
- WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(二)实现IRequestChannel(2016-03-15 12:35)
这是这个系列的第二篇,其他的文章请点击下列目录 WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(一)概要设计 WCF扩展之实现ZeroMQ绑定和protocolBuffer消息 ...
- ROW_NUMBER() OVER 排序函数的基本用法
ROW_NUMBER() OVER 排序函数 select ROW_NUMBER() OVER (PARTITION BY guide_id ORDER BY pic_sort) as rowid,p ...
- Ubuntu 13.04 用户安装 gnome 3.8 桌面
昨天我试用了一把 Ubuntu gnome 13.04,如果你看了那一片文章:Ubuntu Gnome 13.04 体验截图.对 Ubuntu gnome 13.04 并不是采用的gnome 3.8 ...
- Android 省市县 三级联动(android-wheel的使用)
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个 ...
- Apache HTTP Server 与 Tomcat 的三种连接方式介绍(转)
首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接.事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 8080,装好 tomcat 后通过 8080 端 ...
- 离PACKET_INp获取信息acket data
于Floodlight模块假设要packet in消息,就对对应的消息类型进行监听就可以.然后在receive方法中就能够操纵这个上传上来的packet_in. 关键代码: E ...
- 轻量级跨平台消息传递协议XML-RPC深度解析
一.引言 实现跨平台通信的协议主要有简单对象訪问协议(Simple Object Access Protocol,SOAP).代表性状态传输(Representational State Transf ...
- 【YouVersion】 The Bible 圣经App
[YouVersion] The Bible 圣经 App 今天向大家郑重推荐一款非常棒的圣经App : <The Bible> YouVersion 团队开发的全球下载量和安装数目第 ...