DevExpress中GridControl列轉(zhuǎn)義的實(shí)現(xiàn)方法
在一些項(xiàng)目的實(shí)際開發(fā)過程中,我們有時(shí)候需要對(duì)GridControl中列值進(jìn)行轉(zhuǎn)義,譬如1轉(zhuǎn)義成“完成”等等,一般在諸如CustomColumnDisplayText事件中能夠輕松完成,為了提高代碼復(fù)用性,所以需要對(duì)CustomColumnDisplayText進(jìn)行包裝。具體方法如下:
主要功能代碼如下:
/// <summary>
/// CustomColumnDisplayText Helper
/// </summary>
/// <param name="girdview">GridView</param>
/// <param name="fieldNameHandler">委托</param>
/// <param name="dispalyTextHandler">展現(xiàn)文字</param>
/// <param name="e">CustomColumnDisplayTextEventArgs</param>
public static void CusColDisplayTextHelper(this GridView girdview, Predicate<string> fieldNameHandler, Func<object, string> dispalyTextHandler, CustomColumnDisplayTextEventArgs e)
{
if (fieldNameHandler(e.Column.FieldName))
{
e.DisplayText = dispalyTextHandler(e.Value);
}
}
/// <summary>
/// CustomColumnDisplayText Helper
/// </summary>
/// <param name="girdview">GridView</param>
/// <param name="valueHandler">委托</param>
/// <param name="dispalyTextHandler">委托</param>
/// <param name="e">CustomColumnDisplayTextEventArgs</param>
public static void CusColDisplayTextHelper(this GridView girdview, Func<object, Type, bool> valueHandler, Func<object, string> dispalyTextHandler, CustomColumnDisplayTextEventArgs e)
{
if (valueHandler(e.Value, e.Value.GetType()))
{
e.DisplayText = dispalyTextHandler(e.Value);
}
}
/// <summary>
///CustomColumnDisplayText Helper
/// </summary>
/// <param name="girdview">GridView</param>
/// <param name="valueHandler">委托</param>
/// <param name="curdispalyText">展現(xiàn)文字</param>
/// <param name="e">CustomColumnDisplayTextEventArgs</param>
public static void CusColDisplayTextHelper(this GridView girdview, Func<object, Type, bool> valueHandler, string curdispalyText, CustomColumnDisplayTextEventArgs e)
{
if (valueHandler(e.Value, e.Value.GetType()))
{
e.DisplayText = curdispalyText;
}
}
代碼使用方法如下:
private void gvLampConfig_CustomColumnDisplayText(object sender, CustomColumnDisplayTextEventArgs e)
{
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampViDirection"), value => value.ToInt(1) == 1 ? "正向" : "反向", e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampWorkStatus"), TranLampWorkType, e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("CTUChNo"), value => string.Format("第{0}回路", value), e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampPhase"), TranLampPhase, e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampDeviceType"), TranLampDeviceType, e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampPower"), value => string.Format("{0} W", value), e);
gvLampConfig.CusColDisplayTextHelper(name => name.Equals("LampIntensity"), value => string.Format("{0} %", value), e);
gvLampConfig.CusColDisplayTextHelper((value, type) => value.ToInt(-1) == -1 && type == typeof(Int32), "不修改", e);
}
private string TranLampDeviceType(object type)
{
int _type = type.ToInt(-1);
if (_type == 1) return "鈉燈";
if (_type == 2) return "LED燈";
if (_type == 3) return "無極燈";
return "--";
}
private string TranLampPhase(object type)
{
int _type = type.ToInt(-1);
if (_type == 0) return "未知";
if (_type == 1) return "A相";
if (_type == 2) return "B相";
if (_type == 3) return "C相";
return "--";
}
private string TranLampWorkType(object type)
{
int _type = type.ToInt(-1);
if (_type == 0) return "關(guān)閉但不刪除";
if (_type == 1) return "啟用";
if (_type == 2) return "刪除";
return "--";
}
代碼運(yùn)行效果如下所示:

- c# GridControl的模糊查詢實(shí)現(xiàn)代碼
- DevExpress實(shí)現(xiàn)自定義GridControl中按鈕文字內(nèi)容的方法
- DevExpress實(shí)現(xiàn)GridControl列頭繪制Checkbox的方法
- DevExpress實(shí)現(xiàn)GridControl同步列頭checkbox與列中checkbox狀態(tài)
- DevExpress實(shí)現(xiàn)GridControl單元格編輯驗(yàn)證的方法
- DevExpress實(shí)現(xiàn)GridControl刪除所有行的方法
- Devexpress中Gridcontrol查找分組
相關(guān)文章
C#實(shí)現(xiàn)GZip壓縮和解壓縮入門實(shí)例
C#中用GZip對(duì)數(shù)據(jù)壓縮和解壓縮非常方便,但是當(dāng)我第一次拿到這個(gè)類的時(shí)候卻感覺很迷茫,無從下手2014-04-04
C#制作多線程處理強(qiáng)化版網(wǎng)絡(luò)爬蟲
這篇文章主要介紹了C#制作多線程處理強(qiáng)化版網(wǎng)絡(luò)爬蟲的相關(guān)代碼,有想學(xué)習(xí)C#多線程編程的小伙伴可以參考下2016-09-09
C#使用ADO.Net部件來訪問Access數(shù)據(jù)庫的方法
數(shù)據(jù)庫的訪問是所有編程語言中最重要的部分,C#提供了ADO.Net部件用于對(duì)數(shù)據(jù)庫進(jìn)行訪問。本文從最簡單易用的微軟Access數(shù)據(jù)庫入手討論在C#中對(duì)數(shù)據(jù)庫的訪問。2015-09-09
Unity3D Shader實(shí)現(xiàn)動(dòng)態(tài)屏幕遮罩
這篇文章主要為大家詳細(xì)介紹了Unity3D Shader實(shí)現(xiàn)動(dòng)態(tài)屏幕遮罩效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
C#操作EXCEL DataTable轉(zhuǎn)換的實(shí)例代碼
C#操作EXCEL DataTable轉(zhuǎn)換的實(shí)例代碼,需要的朋友可以參考一下2013-04-04
C#去除DataTable重復(fù)數(shù)據(jù)的三種方法
這篇文章主要介紹了C#去除DataTable重復(fù)數(shù)據(jù)的三種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

