一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

一句代碼實現(xiàn)批量數(shù)據(jù)綁定[下篇]

  《上篇》主要介紹如何通過DataBinder實現(xiàn)批量的數(shù)據(jù)綁定,以及如何解決常見的數(shù)據(jù)綁定問題,比如數(shù)據(jù)的格式化。接下來,我們主要來談?wù)凞ataBinder的設(shè)計,看看它是如何做到將作為數(shù)據(jù)源實體的屬性值綁定到界面對應(yīng)的控件上的。此外,需要特別說明一點:《上篇》中提供了DataBinder最初版本的下載,但已經(jīng)和本篇文章介紹的已經(jīng)大不一樣了。最新版本的主要解決兩個主要問題:通過Expression Tree的方式進行屬性操作(屬性賦值和取值),添加了“數(shù)據(jù)捕捉”(Data Capture)的功能,以實現(xiàn)將控件中的值賦給指定的實體。但是,這并不意味著這就是一個最終版本,這里面依然有一些問題,比如對空值的處理不不夠全面,比如在進行數(shù)據(jù)綁定的時候,有的控件類型需要進行HTML Encoding,等等。[源代碼從這里下載]

目錄:
一、通過DataPropertyAttribute特性過濾實體的“數(shù)據(jù)屬性”
二、Control/DataSource映射的表示:BindingMapping
三、如何建立Control/DataSource映射集合
四、通過映射集合實現(xiàn)數(shù)據(jù)綁定
五、通過映射集合實現(xiàn)數(shù)據(jù)捕捉

  一、通過DataPropertyAttribute特性過濾實體的數(shù)據(jù)屬性

  DataBinder在進行數(shù)據(jù)綁定的時候,并沒有對作為數(shù)據(jù)源的對象作任何限制,也就是說任何類型的對象均可作為數(shù)據(jù)綁定的數(shù)據(jù)源??丶ㄟ@里指TextBox、Label等這樣綁定標量數(shù)值的控件)綁定值來源于數(shù)據(jù)源實體的某個屬性。但是一個類型的屬性可能有很多,我們需要某種篩選機制將我們需要的“數(shù)據(jù)屬性”提取出來。這里我們是通過在屬性上應(yīng)用DataPropertyAttribute一個特性來實現(xiàn)的。

  簡單起見,我不曾為DataPropertyAttribute定義任何屬性成員。DataPropertyAttribute中定義了一個靜態(tài)的GetDataProperties方法,得到給定實體類型的所有數(shù)據(jù)屬性的名稱。但是為了避免頻繁地對相同實體類型進行反射,該方法對得到的屬性名稱數(shù)組進行了緩存。

[AttributeUsage( AttributeTargets.Property, AllowMultiple = false,Inherited = true)]
public class DataPropertyAttribute: Attribute
{
private static Dictionary<Type, string[]> dataProperties = new Dictionary<Type, string[]>();
public static string[] GetDataProperties(Type entityType)
{
Guard.ArgumentNotNullOrEmpty(entityType,
"entityType");
if (dataProperties.ContainsKey(entityType))
{
return dataProperties[entityType];
}
lock (typeof(DataPropertyAttribute))
{
if (dataProperties.ContainsKey(entityType))
{
return dataProperties[entityType];
}
var properties
= (from property in entityType.GetProperties()
where property.GetCustomAttributes(typeof(DataPropertyAttribute), true).Any()
select property.Name).ToArray();
dataProperties[entityType]
= properties;
return properties;
}
}
}

NET技術(shù)一句代碼實現(xiàn)批量數(shù)據(jù)綁定[下篇],轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲图片欧美小说 | 伊人色婷婷 | 精品国产精品 | 在线中文字幕精品第5页 | 国产精品青青青高清在线密亚 | 国产第一区二区三区在线观看 | 亚洲欧洲国产精品 | a级精品九九九大片免费看 a加勒比一本东京 | 2021最新久久久视精品爱 | 美女扒开腿让男人捅爽 | 欧美成人亚洲欧美成人 | 亚洲精品国产成人 | 婷婷丁香视频 | 国产91小视频在线观看 | 国产成人禁片免费观看 | 国产在线观看一区 | 国产aⅴ一区二区三区 | 色老板在线影院 | 全黄三级 | 伊人网中文字幕 | 五月婷婷在线免费观看 | 日韩美女色高清在线看 | 国产美女精品久久久久久久免费 | 国产一区曰韩二区欧美三区 | 点击进入不卡毛片免费观看 | 精品无人区乱码麻豆1区2区 | 亚洲美女一级毛片 | 婷婷伊人 | 最新国产区 | 一区二区三区免费高清视频 | 国内第一永久免费福利视频 | 一区三区三区不卡 | www.色.con| 亚洲一区免费在线观看 | 亚洲激情视频 | 美女被性调教视频在线观看 | www.一区二区三区.com | 色婷婷一区二区三区四区成人网 | 久久青草精品免费资源站 | 五月婷婷之婷婷 | 中文字幕一区二区三区精品 |