开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 5028|回复: 0

Devexpress中GridControl列的自定义及TreeList显示列的自定义

[复制链接]

0

精华

10

贡献

18

赞扬

帖子
27
软币
491
在线时间
54 小时
注册时间
2013-7-5
QQ
发表于 2013-10-21 00:10:06 | 显示全部楼层 |阅读模式
本帖最后由 萧從军 于 2013-10-21 00:19 编辑

根据http://www.dxper.net/thread-1667-1-1.html问题帖。
对[GridControl列的自定义],这样做以后我们的列就不用不断的在gridview设计界面中添加列,只需要给对象赋特征值,就灵活了。
代码如下:

  1. <p>    /// <summary>
  2.         /// 初始化grid列
  3.         /// </summary>
  4.         /// <param name="grid"></param>
  5.         /// <param name="typeName">加载对象如Model.BasicUser</param>
  6.         protected virtual void InitGrid(GridView grid, string typeName)
  7.         {
  8.             grid.Columns.Clear();</p><p>            if (string.IsNullOrEmpty(typeName))
  9.             {
  10.                 return;
  11.             }
  12.             Type type = Type.GetType(typeName);
  13.             if (type == null)
  14.             {
  15.                 return;
  16.             }</p><p>        foreach (PropertyInfo item in type.GetProperties())
  17.             {
  18.                 ColumnAttribute attribute = GetColumnAttribute(item);//定义对象的特征值,根据定义特征获取设置的值。
  19.                 if (attribute == null || string.IsNullOrWhiteSpace(attribute.Name) || attribute.Width == 0)
  20.                 {
  21.                     continue;
  22.                 }
  23.                 grid.OptionsView.EnableAppearanceEvenRow = true;
  24.                 grid.OptionsView.EnableAppearanceOddRow = true;
  25.                 grid.Appearance.EvenRow.BackColor = Color.WhiteSmoke;
  26.                 grid.Appearance.OddRow.BackColor = Color.White;
  27.                 grid.Appearance.FocusedRow.BackColor = Color.RoyalBlue;
  28.                 grid.Appearance.FocusedRow.ForeColor = Color.White;
  29.                 grid.OptionsView.ColumnAutoWidth = false;
  30.                 var gridColumn = new GridColumn();
  31.                 if (!string.IsNullOrEmpty(attribute.DisplayFormat))
  32.                 {
  33.                     gridColumn.DisplayFormat.FormatString = attribute.DisplayFormat;
  34.                     gridColumn.DisplayFormat.FormatType = FormatType.Custom;
  35.                 }
  36.                 if (!string.IsNullOrEmpty(attribute.Align))
  37.                 {
  38.                     gridColumn.AppearanceCell.Options.UseTextOptions = true;
  39.                     gridColumn.AppearanceCell.TextOptions.HAlignment =
  40.                         (HorzAlignment)Enum.Parse(typeof(HorzAlignment), attribute.Align, true);
  41.                 }
  42.                 gridColumn.OptionsColumn.AllowEdit = false;
  43.                 gridColumn.OptionsColumn.AllowFocus = !attribute.IsReadOnly;
  44.                 gridColumn.OptionsColumn.ReadOnly = attribute.IsReadOnly;
  45.                 gridColumn.OptionsFilter.AllowAutoFilter = false;
  46.                 gridColumn.OptionsFilter.AllowFilter = false;
  47.                 gridColumn.Caption = attribute.Name;
  48.                 gridColumn.Width = attribute.Width;
  49.                 gridColumn.FieldName = item.Name;
  50.                 gridColumn.Visible = true;
  51.                 gridColumn.VisibleIndex = grid.Columns.Count;
  52.                 gridColumn.AppearanceHeader.Options.UseTextOptions = true;
  53.                 gridColumn.AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;</p><p>                //根据列的属性值都可以在特征值里面定义,再通过初始化GridControl列来负责
  54.                 grid.Columns.Add(gridColumn);
  55.             }
  56.         }</p></p>
复制代码
根据gridcontrol自定义列,那么treelist自定义列就类似一样了。如有兴趣可以尝试,有任何问题可以以前讨论。

评分

参与人数 1贡献 +3 赞扬 +1 收起 理由
羽叶 + 3 + 1 感谢分享

查看全部评分

回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-5-9 04:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表