[转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择
2020-12-13 03:18
标签:blog class code c tar ext 本文转自:http://blog.bossma.cn/asp_net_mvc/asp-net-mvc-htmlhelper-calendar-datetime-select/ 这里我们扩展HtmlHelper,就像它包含在ASP.NET
MVC中一样,扩展方法使我们能为已有的类添加方法。这里使用了一个日期时间选择控件:My97DatePicker,需要添加到网站中,并在页面中引用。 先看看是怎么扩展的: 使用办法: 日期选择输入框:
model.PlanStartTime)%> 显示日期: model.PlanStartTime)%> 日期时间选择输入框: model.PlanStartTime,
“yyyy-MM-dd HH:mm”)%> [转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择,搜素材,soscw.com [转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择 标签:blog class code c tar ext 原文地址:http://www.cnblogs.com/freeliver54/p/3725383.html
using
System;
using
System.Collections.Generic;
using
System.Runtime.CompilerServices;
using
System.Linq.Expressions;
namespace
System.Web.Mvc
{
///
/// Extended the HtmlHelper for Calendar
///
public
static
class
CalendarExtensions
{
private
static
string
defaultFormat =
"yyyy-MM-dd"
;
///
/// 使用特定的名称生成控件
///
/// HtmlHelper对象
/// 控件名称
///
public
static
string
Calendar(
this
HtmlHelper helper,
string
name)
{
return
Calendar(helper, name, defaultFormat);
}
///
/// 使用特定的名称生成控件
///
/// HtmlHelper对象
/// 控件名称
/// 显示格式
///
public
static
string
Calendar(
this
HtmlHelper helper,
string
name,
string
format)
{
return
GenerateHtml(name,
null
, format);
}
///
/// 使用特定的名称和初始值生成控件
///
/// HtmlHelper对象
/// 控件名称
/// 要显示的日期时间
///
public
static
string
Calendar(
this
HtmlHelper helper,
string
name, DateTime date)
{
return
Calendar(helper, name, date, defaultFormat);
}
///
/// 使用特定的名称和初始值生成控件
///
/// HtmlHelper对象
/// 控件名称
/// 要显示的日期时间
/// 显示格式
///
public
static
string
Calendar(
this
HtmlHelper helper,
string
name, DateTime date,
string
format)
{
return
GenerateHtml(name, date, format);
}
///
/// 通过lambda表达式生成控件
///
/// HtmlHelper对象
/// lambda表达式,指定要显示的属性及其所属对象
///
public
static
string
CalendarFor
this
HtmlHelper
{
return
CalendarFor(helper, expression, defaultFormat);
}
///
/// 通过lambda表达式生成控件
///
/// HtmlHelper对象
/// lambda表达式,指定要显示的属性及其所属对象
/// 显示格式
///
public
static
string
CalendarFor
this
HtmlHelper
string
format)
{
string
name = ExpressionHelper.GetExpressionText(expression);
DateTime value;
object
data = ModelMetadata.FromLambdaExpression
if
(data !=
null
&& DateTime.TryParse(data.ToString(),
out
value))
{
return
GenerateHtml(name, value, format);
}
else
{
return
GenerateHtml(name,
null
, format);
}
}
///
/// 通过lambda表达式获取要显示的日期时间
///
/// HtmlHelper对象
/// lambda表达式,指定要显示的属性及其所属对象
/// 显示格式
///
public
static
string
CalendarDisplayFor
this
HtmlHelper
string
format)
{
string
name = ExpressionHelper.GetExpressionText(expression);
DateTime value;
object
data = ModelMetadata.FromLambdaExpression
if
(data !=
null
&& DateTime.TryParse(data.ToString(),
out
value))
{
return
value.ToString(format);
}
else
{
return
string
.Empty;
}
}
///
/// 通过lambda表达式获取要显示的日期时间
///
/// HtmlHelper对象
/// lambda表达式,指定要显示的属性及其所属对象
///
public
static
string
CalendarDisplayFor
this
HtmlHelper
{
return
CalendarDisplayFor(helper, expression, defaultFormat);
}
///
/// 生成输入框的Html
///
/// calendar的名称
/// calendar的值
///
private
static
string
GenerateHtml(
string
name, DateTime? date,
string
format)
{
if
(date !=
null
)
{
return
"
+ name +
"\" name=\""
+ name +
"\" onfocus=\"WdatePicker({dateFmt:‘"
+ format +
"‘})\" class=\"Wdate\" value=\""
+ date.Value.ToString(format) +
"\" />"
;
}
else
{
return
"
+ name +
"\" name=\""
+ name +
"\" onfocus=\"WdatePicker({dateFmt:‘"
+ format +
"‘})\" class=\"Wdate\" value=\"\" />"
;
}
}
}
}
文章标题:[转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择
文章链接:http://soscw.com/essay/27384.html