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 ...
随机推荐
- Sass 编译的几种方法
常常有人会问,使用 Sass 进行开发,那么是不是直接通过“<link>”引用“.scss”或“.sass”文件呢? 那么这里告诉大家,在项目中还是引用“.css”文件,Sass 只不过是 ...
- crontab没有正确重定向导致磁盘inode节点空间满
通常是发现磁盘没有满但是无法写入文件.提示“no space left on device” 用df -i 查看,应该会发现相应的分区是100% 一般都是crontab的job有问题,造成 ...
- LinkedHashMap和HashMap的比较使用(转载)
LinkedHashMap和HashMap的比较使用 ? import java.util.HashMap; import java.util.Iterator; import java.util.L ...
- ubuntu apt-get常用命令的使用
packagename指代为软件包的名称 apt-get install packagename 安装一个新软件包(参见下文的aptitude) apt-get remove ...
- 用powerdesigner建模工具生成数据库
1,使用powerdesignerP:主键 F:外键 M:是否可为空 2,两张表建立主外键关系时,主外键名称要相同.比如A表 A_id name 说明id(P) B表 B_id name 说明id ...
- UIWebView1-b
随着H5的强大,hybrid app已经成为当前互联网的大方向,单纯的native app和web app在某些方面显得就很劣势.关于H5的发展史,这里有一篇文章推荐给大家,今天我们来学习最基础的基于 ...
- 自由树的计数 Labeled unrooted tree counting
问题: 4个标记为1,2,3,4的节点构成自由树(算法导论里的定义,连接着,无环,无向的图),一共有多少种构造方法?如果N个节点呢? 解决方法: 4个节点可以通过穷举的方式得到答案,一共有16中方式. ...
- 转:在Eclipse中进行C/C++开发的配置方法(20140721最新版)
http://blog.csdn.net/baimafujinji/article/details/38026421 Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它 ...
- MVVM_Android-CleanArchitecture
前言 "Architecture is About Intent, not Frameworks" - Robert C. Martin (Uncle Bob) Uncle Bob ...
- jdk jre jvm 关系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...