在做项目时,涉及到用户自定义报表,即用户可以根据自己的喜好,选择报表中需要显示的列,并可以对这些列重新命名/排序等.这些功能由报表设计器来完成.

最初设想的是使用ListBox的SelectedIndexChanged事件,根据此事件,显示TextBox中的文本内容,并根据用户输入的新的文本内容,再次更改当前的SelectedItem的内容.不过,当更改SelectedItem时,又触发了SeletecIndexChanged事件.因此,此方法不可行.

后来使用ListBox的Click事件来完成.

本文章中,只是对于方法的简单介绍.因此其中的数据比较简单,且不完整.

首先定义数据列模型,它包含列默认名称/用户自定义名称/列类型/与数据匹配的字段名等.

代码如下:

/// <summary>
/// 数据列类型
/// </summary>
class DataColumn
   5: {
/// <summary>
/// 默认列名
/// </summary>
string DefaultName;
  10:     
/// <summary>
/// 用户自定义列名
/// </summary>
string customName;
  15:     
/// <summary>
/// 此处需要提供CustomName属性,否则绑定时,DispalyMember无法正常显示.
/// (如果没有此属性,则绑定后显示为:LBTest.DataColumn)
/// </summary>
string CustomName {
return customName; }
value;}
  23:     }
  24:     
/// <summary>
/// 列的数据类型
/// </summary>
string DataType;
  29:     
/// <summary>
/// 字段名称
/// </summary>
string FieldName;
  34:     
#region 构造函数
public DataColumn()
  37:     {
;
;
;
string.Empty;
  42:     }
  43:  
string fieldName)
  45:     {
this.DefaultName = defaultName;
this.customName = customName;
this.DataType = dataType;
this.FieldName = fieldName;
  50:     }
#endregion  构造函数
  52: }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
  • 2021-06-28
  • 2021-11-21
猜你喜欢
  • 2021-04-05
  • 2021-06-20
  • 2021-12-24
  • 2022-12-23
  • 2021-12-01
  • 2022-12-23
相关资源
相似解决方案