通过对HtmlHelper扩展简化列表控件绑定.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[ASP.NET MVC]通过对HtmlHelper 扩展简化“列表控件”的绑定 在众多表单元素中,有一类select元素用于绑定一组预定义列表。传统的ASP.NET Web Form 中, 它对应着一组重要的控件类型,即ListControl,我们经常用到DropDownList, ListBox、CheckBoxList 和RadioButtonList 都是其子类。ASP.NET MVC 通过对HtmlHelper 和HtmlHelperTModel的扩 展实现了对不同类型的select元素的绑定,它们以扩展方法的形式定义在SelectExtensions 中。当我 们在操作这些扩展方法的时候,必须手工地提供以 IEnumerableSelectListItem对象表示的列表项。 如果我们建立一个独立的组件来维护这些预定的列表,那么我们就可以定义一些更加简单的扩展方法以避 免手工地指定列表项。[源代码从这里下载] 一、创建一个独立的列表维护组件 我们将这些绑定在select元素中的预定义列表中的元素称为Code。作为简单的演示模拟,我们创建了 一个名为CodeManager 的组件。我们先来看看用于描述单一Code 的CodeDescription 类型的定义, 如下面的代码所示,CodeDescription 具有ID、Code、Description、EffectiveStartDate 和 EffectiveEndDate。以表示国家的列表为例,Code 代表某个国家的代码 (比如CN),Description 则 是一个可读性的描述 (比如China)。EffectiveStartDate 和EffectiveEndDate 决定了Code 的有效 期限,比如一组表示“税率”的列表,在不同的时间范围内可能采用不同的列表。换言之,作为统一类别 (通 过Category 属性表示)的列表中可能具有“多套”,它们可以共享相同的Code,我们通过ID 来区分这些 具有相同Code 的列表项。 1: public class CodeDescription 2: { 3: public string Id { get; set; } 4: public string Code { get; set; } 5: public string Description { get; set; } 6: public string Category{get;set;} 7: public DateTime EffectiveStartDate { get; set; } 8: public DateTime EffectiveEndDate { get; set; } 9: 10: public CodeDescription(string code, string description, string category) 11: { 12: this.Id = Guid.NewGuid().ToString(); 13: this.Code = code; 14: this.Description = description; 15: this.Category = category; 16: this.EffectiveStartDate = DateTime.MinValue; 17: this.EffectiveEndDate = DateTime.MaxValue; 18: } 19: } 如下所示的CodeCollection 表示一组CodeDescription 列表,它直接继承自 CollectionCodeDescription类型。由于CodeDescription 具有有效期限的概念,我们需要筛选出当 前有效的Code,所以我们定义了如下一个GetEffectiveCodes 方法。 1: public class CodeCollection : CollectionCodeDescription 2: { 3: public IEnumerableCodeDescription GetEffectiveCodes() 4: {

文档评论(0)

wx171113 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档