DevExpress LookUpEdit 初始化(数据加载) 底层类
(1)三个效果
1>传的参数较多,对数据表无要求,但可以设置下拉列的宽度和标题
2>传的参数很少,对数据表有要求(必须是处理好的)
3>传的参数一般,对数据表无要求,但不可以设置下拉列的宽度和标题
1)
2)
3)
(2)后台代码
底层类:
/// <summary>
/// 初始化LookUpEdit控件 (加载数据表中的一列或多列,且显示下拉列标题,可以设置下拉列的宽度)
/// </summary>
/// <param name="lookUpEdit">空间名称</param>
/// <param name="fields">下拉要显示的列</param>
/// <param name="captions">下拉要显示的列标题</param>
/// <param name="widths">下拉显示列的宽度 如果null 宽度为系统默认 </param>
/// <param name="dt">绑定的数据表</param>
/// <param name="valueMember">绑定列</param>
/// <param name="displayMember">显示列</param>
/// <param name="dropDownRows">下拉最多显示个数 如果为0,显示全部</param>
public static void InitLookUpEdit(DevExpress.XtraEditors.LookUpEdit lookUpEdit,
string[] fields, string[] captions, int[] widths,
DataTable dt, string valueMember, string displayMember, int dropDownRows)
{
lookUpEdit.Properties.NullText = "---请选择---";
lookUpEdit.Properties.Columns.Clear();
if (fields.Length != captions.Length)
{
return;
}
for (int i = 0; i < fields.Length; i++)
{
if (widths != null)
{
if (fields.Length != widths.Length)
{
return;
}
lookUpEdit.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo(fields[i], widths[i], captions[i]));
lookUpEdit.Properties.Columns[i].Visible = widths[i] == 0 ? false : true;
}
else
{
lookUpEdit.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo(fields[i], captions[i]));
}
lookUpEdit.Properties.Columns[i].Alignment = DevExpress.Utils.HorzAlignment.Center; } if (widths == null)
lookUpEdit.Properties.Columns[valueMember].Visible = false; lookUpEdit.Properties.DataSource = dt;
lookUpEdit.Properties.ValueMember = valueMember;
lookUpEdit.Properties.DisplayMember = displayMember;
lookUpEdit.Properties.ShowHeader = true;
lookUpEdit.Properties.ShowFooter = false;
if (dropDownRows == 0)
{
lookUpEdit.Properties.DropDownRows = dt.Rows.Count + 1;
}
else
{
lookUpEdit.Properties.DropDownRows = dt.Rows.Count > dropDownRows ? dropDownRows : dt.Rows.Count;
}
} /// <summary>
/// 初始化LookUpEdit控件 (下拉加载数据表中的所有列,且不显示下拉列标题、不设置宽度)
/// </summary>
/// <param name="lookUpEdit">控件名称</param>
/// <param name="dt">绑定的数据表</param>
/// <param name="valueMember">绑定列</param>
/// <param name="displayMember">显示列</param>
/// <param name="dropDownRows">下拉最多显示个数 如果为0,显示全部</param>
public static void InitLookUpEdit(DevExpress.XtraEditors.LookUpEdit lookUpEdit,
DataTable dt, string valueMember, string displayMember, int dropDownRows)
{
if (!dt.Columns.Contains(valueMember) && dt.Columns.Contains(displayMember))
{
return;
}
lookUpEdit.Properties.NullText = "---请选择---";
lookUpEdit.Properties.Columns.Clear(); foreach (DataColumn col in dt.Columns)
lookUpEdit.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo(col.ColumnName)); lookUpEdit.Properties.DataSource = dt; lookUpEdit.Properties.Columns[valueMember].Visible = false; lookUpEdit.Properties.ValueMember = valueMember;
lookUpEdit.Properties.DisplayMember = displayMember;
lookUpEdit.Properties.ShowHeader = false;
lookUpEdit.Properties.ShowFooter = false;
if (dropDownRows == 0)
{
lookUpEdit.Properties.DropDownRows = dt.Rows.Count;
}
else
{
lookUpEdit.Properties.DropDownRows = dt.Rows.Count > dropDownRows ? dropDownRows : dt.Rows.Count;
}
} /// <summary>
/// 初始化LookUpEdit控件 (下拉加载数据表中一列或多列,且不显示下拉列标题、不设置宽度)
/// </summary>
/// <param name="lookUpEdit">控件名称</param>
/// <param name="dt">绑定的数据表</param>
/// <param name="fields">下拉要显示的列(要包含绑定列)</param>
/// <param name="valueMember">绑定列</param>
/// <param name="displayMember">显示列</param>
/// <param name="dropDownRows">下拉最多显示个数 如果为0,显示全部</param>
public static void InitLookUpEdit(DevExpress.XtraEditors.LookUpEdit lookUpEdit,
DataTable dt, string[] fields, string valueMember, string displayMember, int dropDownRows)
{
//数据表中是否存在fields的列
if (fields != null)
{
for (int i = 0; i < fields.Length; i++)
{
if (!dt.Columns.Contains(fields[i]))
{
MessageBox.Show("LookUpEdit控件 列名不在数据表中");
return;
}
}
} //过滤列 且去掉重复
DataView dv = new DataView(dt);
dt = dv.ToTable(true, fields); InitLookUpEdit(lookUpEdit, dt, valueMember, displayMember, dropDownRows);
}
调用:
//显示特定列 设置下拉列标题和宽度
InitLookUpEdit(lookUpEdit1,
new string[] { "Stu_Number", "Stu_Name" },
new string[] { "学号", "姓名" },
new int[] { 50, 80 },
dt, "Stu_ID", "Stu_Name", 5); //显示全部列 不可以设置标题和宽度
InitLookUpEdit(lookUpEdit2, dt, "Stu_ID", "Stu_Name", 5); //显示特定列 不可以设置标题和宽度
InitLookUpEdit(lookUpEdit3, dt, new string[] { "Stu_Number", "Stu_Name", "Stu_ID" }, "Stu_ID", "Stu_Name", 5);
备注(常用):
//总宽度
lookUpEdit1.Properties.PopupWidth = lookUpEdit1.Width;
//默认选择第一项 ,如果 =-1 显示NullText
lookUpEdit1.ItemIndex = 0;
//自适应宽度
lookUpEdit1.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
//下拉列表个数
lookUpEdit1.Properties.DropDownRows = dt.Rows.Count;
//列格式
lookUpEdit1.Properties.Columns[0].FormatString = "000000";
//列文字居中
lookUpEdit1.Properties.Columns[0].Alignment = DevExpress.Utils.HorzAlignment.Center;
//显示的值 dispalyMember
string str1 = lookUpEdit1.Text;
//绑定的值 ValueMember
string str2 = lookUpEdit1.EditValue.ToString();
版权声明:本文为博主原创文章,未经博主允许不得转载。
DevExpress LookUpEdit 初始化(数据加载) 底层类的更多相关文章
- DevExpress ChartControl大数据加载时有哪些性能优化方法
DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...
- vue初始化数据加载
使用created钩子 import AppLayout from '@/components/app-layout' import axios from 'axios' export default ...
- Tomcat启动时加载数据到缓存---web.xml中listener加载顺序(例如顺序:1、初始化spring容器,2、初始化线程池,3、加载业务代码,将数据库中数据加载到内存中)
最近公司要做功能迁移,原来的后台使用的Netty,现在要迁移到在uap上,也就是说所有后台的代码不能通过netty写的加载顺序加载了. 问题就来了,怎样让迁移到tomcat的代码按照原来的加载顺序进行 ...
- PyTorch 数据集类 和 数据加载类 的一些尝试
最近在学习PyTorch, 但是对里面的数据类和数据加载类比较迷糊,可能是封装的太好大部分情况下是不需要有什么自己的操作的,不过偶然遇到一些自己导入的数据时就会遇到一些问题,因此自己对此做了一些小实 ...
- arcgis python 使用光标和内存中的要素类将数据加载到要素集 学习:http://zhihu.esrichina.com.cn/article/634
学习:http://zhihu.esrichina.com.cn/article/634使用光标和内存中的要素类将数据加载到要素集 import arcpy arcpy.env.overwriteOu ...
- 浅谈Entity Framework中的数据加载方式
如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Arc ...
- 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)
实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...
- Android Volley和Gson实现网络数据加载
Android Volley和Gson实现网络数据加载 先看接口 1 升级接口 http://s.meibeike.com/mcloud/ota/cloudService POST请求 参数列表如下 ...
- Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 2012-09-07 11:19 8152人阅读 评论(12) 收藏 举报 代码分析android相册优化工作 Androi ...
随机推荐
- MySQL字符串中数字排序的问题
1.select * from table where 1 order by id*1 desc; 2.select * from table where 1 order by id+0 desc ...
- QQ空间的“神奇”图片
近几天好多朋友问我qq空间出现的神奇图片原理,最近比较烦,事情比较多,一直没理.加上我对PHP之类的语言也一知半解. 今天闲了看了一下QQ空间,发现这个很早以前就有人写过这样的帖子了 看别人解释 (转 ...
- myeclipse使用SVN团队开发
很多时候我们做项目都是已一个团队一起开发,所以我们可以选择SVN开发工具. 一:了解SVN的使用流程: 1).有一个服务端,他可以在上面添加一个项目,添加成员 2).myeclipse需要安装svn的 ...
- linux vi 使用
vi 有一般模式和编辑模式 如vi test.txt 是首先进入的一般模式,一般模式下只能进行复制.删除.粘贴文件数据, 在一般模式下按i .I.a.A.o.O 都能进入编辑模式,按下不同的键进入编辑 ...
- UI控件切圆角
1. xib下设置View圆角 这个很简单, 只需要重写 - (void)drawRect:(CGRect)rect 方法就行了 1 2 3 4 5 6 - (void)drawRect:(CGRe ...
- 降维(一)----说说主成分分析(PCA)的源头
降维(一)----说说主成分分析(PCA)的源头 降维系列: 降维(一)----说说主成分分析(PCA)的源头 降维(二)----Laplacian Eigenmaps --------------- ...
- 浅谈 Android 开发文化
Hello,亲爱的读者朋友们(希望你们是 Android 开发者,或者正在成为 Androider 的路上-)! 质量从用户反馈很清凉然后我们就只能看 CPU 原来的想法是但是事实上不是这些但是我们可 ...
- Ansj分词双数组Trie树实现与arrays.dic词典格式
http://www.hankcs.com/nlp/ansj-word-pairs-array-tire-tree-achieved-with-arrays-dic-dictionary-format ...
- 移动应用产品开发-android开发(一)
最近公司希望增添移动开发业务,进行移动互联网开发的调研及产品需求调研. 我主要负责技术解决方案的研究,从android开发开始学习.同时跟经理一起与其他部门同事沟通了解移动开发方面的需求. 在了解an ...
- perl use base 继承
centos6.5:/root/podinns/lib#cat First.pm package First; use base qw(Second); sub new { my $self = {} ...