本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:
日志总数:18
评论数量:10
留言数量:1
访问次数:137582
建立时间:2005年11月22日




[编程]GridColumn的DisplayFormat小讲述(C#)
电脑与网络

flymcx 发表于 2006/6/26 14:36:32

也许做.net开发的人有很多人都用了DevExpress的控件,DevExpress的GridControl控件比较复杂。而他的绑定列可以由GridColumn组成。由于GridControl很复杂,这里就只讲GridColumn的DisplayFormat。 例如你的数据库记录了一些状态,例如1,2,3。但实际1表示开通,2表示不开通,3表示待机。虽然你可以用sql的case表解决这个问题,或者用其它的方法。这里就讲用DisplayFormat方法。 例假前面定义了一个GridColumn gridColumn7, 代码如下gridColumn7.DisplayFormat.FormatType=DevExpress.Utils.FormatType.Custom; BaseFormatter formatBase=new BaseFormatter(); gridColumn7.DisplayFormat.Format=formatBase; formatBase.EventHandler+=new OverideFormat(formatBase_EventHandler); private string formatBase_EventHandler(string format, object arg, IFormatProvider formatProvider)  {      int state=int.Parse(arg.ToString());      if(state==1)           return "开通";      if(state==2)           return "不开通";      if(state==3)          return "待机";  } /*其中formatBase是自己定义的一个类,因为DisplayFormat.Format属性是一个IFormatProvider接口,所以formatBase必须实现这个接口。这个接口里只有一个方法,string Format(string format, object arg, IFormatProvider formatProvider),这些参数,我们只要关心的是object arg。GridControl里加载数据的时候,会运行这个类的Format方法。而arg就是他原有的单元格的值。而format则是DisplayFormat.FormatString的值。对于formatProvider,他会调用formatBase和GetFormat(Type formatType),所以formatBase还要实现ICustomFormatter接口。*/ using System;namespace DisplaySimple{ public delegate string OverideFormat(string format,object arg,IFormatProvider formatProvider); /// <summary> /// BaseFormatter 的摘要说明。 /// </summary> public class BaseFormatter:IFormatProvider,ICustomFormatter {  public event OverideFormat EventHandler;  public BaseFormatter()  {   //   // TODO: 在此处添加构造函数逻辑   //  }  #region ICustomFormatter 成员    public string Format(string format, object arg, IFormatProvider formatProvider)  {   // TODO:  添加 BaseFormatter.Format 实现   if(EventHandler!=null)    return EventHandler(format,arg,formatProvider);   return arg.ToString();  }   #endregion   #region IFormatProvider 成员   public object GetFormat(Type formatType)  {   // TODO:  添加 BaseFormatter.GetFormat 实现   if (formatType == typeof (ICustomFormatter)) return this;   else return null;  }   #endregion }} /* */  


阅读全文(11699) | 回复(1) | 编辑 | 精华
 


回复:GridColumn的DisplayFormat小讲述(C#)
电脑与网络

Kinogam发表评论于2006/6/26 15:27:17

顶啊


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.039 second(s), page refreshed 144760941 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号