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 ...
随机推荐
- python 数据运算
算数运算:
- networkRequest
void TPHttp::applyResource(){ QJsonObject json; json.insert("ProductCode","MoVd ...
- uboot的mkconfig分析
uboot的mkconfig是一个shell脚本.对于笔者这种Linux学习初学者,不太可能认真的把shell脚本学习一遍.但是,倘若不能理解mkconfig的含义,又很难从整体的理解uboot(我认 ...
- why app_start start
Add following code for your class: [assembly: WebActivatorEx.PostApplicationStartMethod(typeof(WeCha ...
- EF4 Code First和EF6 Code First链接mysql的方法
1.首先需要下载安装.Net的Mysql驱动 下载地址如下:http://dev.mysql.com/downloads/connector/net/ 2.配置Web.Config EF6: 配置链接 ...
- Keys of HashMap in Java
The tricky thing is how to decide the key for a hashmap. Especially when you intend to use self-defi ...
- hdu 4763 && 2013 ACM/ICPC 长春网络赛解题报告
一个KMP的简单题 不过好久没用过这个东东了,今天写的时候花了很多时间: 只需要花点时间判断下所有的元素都相同的的情况就行了! #include<cstdio> #include<c ...
- 系统调用与API的区别
整理自系统调用与API的区别 1.为什么用户程序不能直接访问系统内核模式提供的服务? 答:在linux中,将程序的运行空间分为内核与用户空间(内核态和用户态),在逻辑上它们之间是相互隔离的,因此用户程 ...
- CPU,MPU,MCU,SOC,SOPC联系与差别
转自CPU,MPU,MCU,SOC,SOPC联系与差别 1.CPU(Central Processing Unit),是一台计算机的运算核心和控制核心.CPU由运算器.控制器和寄存器及实现它们之间联系 ...
- File上传
http://wenku.baidu.com/link?url=bsufrjDQztceWCUw2gqFeYkL1_95t9yIyV1LfHVYL9URAlpWSK_ALO1bAWSlBdnPXYXE ...