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 ...
随机推荐
- 第三章 AOP 编程选择
Spring为我们开发者提供了多种AOP的编程方式.我们该如何选择呢? 如果项目采用的是JDK5.0以上版本,我们可以选择@AspectJ的方式.这是第一选择. http://blog.csdn.ne ...
- Windows Phone开发(11):常用控件(下)
原文:Windows Phone开发(11):常用控件(下) WP控件大部分都可以从Silverlight中继承过来,这里我也只能拿一部分作演示,对于其它控件如何使用,可以参考SDK相关说明以及Sil ...
- 深入了解mysql它BDB系列(1)---BDB基础知识
深入了解mysql它BDB系列(1) ---BDB关基础知识 作者:杨万富 一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的.包括五个子系统(见图1.1中 ...
- android 读,写图片sd网卡资源
<pre name="code" class="html"><!--<span style="font-family: Ari ...
- wpf 模拟3D效果(和手机浏览图片效果相似)(附源码)
原文 wpf 模拟3D效果(和手机浏览图片效果相似)(附源码) pf的3D是一个很有意思的东西,类似于ps的效果,类似于电影动画的效果,因为动画的效果,(对于3D基础的摄像机,光源,之类不介绍,对于依 ...
- WinForm 国际化开发一例
1.新建一个WinForm程序(在中文版的Windows下),如下,添加1个Button和1个Label 设置Form1的localizable属性为True(Form1的properties里的De ...
- wpf做的3d滑动gallery
原文:wpf做的3d滑动gallery wpf做的3d滑动gallery 随着iphone\ipad的流行及热捧,现在做移动产品不管是什么平台的,领导总想做成像ios系统的样子.自从微软发布了wind ...
- 【原创】一个基于简单剪枝的DFS解数独程序
问题来源:leetCode Sudoku Solver Write a program to solve aSudoku puzzle by filling the empty cells. Empt ...
- POJ2239 Selecting Courses【二部图最大匹配】
主题链接: http://poj.org/problem?id=2239 题目大意: 学校总共同拥有N门课程,而且学校规定每天上12节可,一周上7天. 给你每门课每周上的次数,和哪一天哪一节 课上的. ...
- 利用Sails.js+MongoDB开发博客系统
http://yoyoyohamapi.me/categories/利用Sails-js-MongoDB开发博客系统/ 利用Sails.js+MongoDB开发博客系统 Apr 14, 2016 利用 ...