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]类与类中的列表
最近在用类中的列表时出现一件怪事 实例2中的列表,竟然有实例1中的数据. 查了半天发现是list的append方法的问题. 将全部的list.append(value) 换成 list = list ...
- VMware网络选项分析
摘自资料:VMware网卡选项分析.zip 很多朋友都曾问到关于Guest和Host互联,其实这并不是一件困难的事情,只要能够理解VMware的网络模型即可,今天结合着我的虚拟机,来详细介绍一下VMw ...
- NET SqlClient
NET SqlClient的使用与常见问题 阅读目录 一.简介 二.使用ADO.NET 三.常见问题 回到目录 一.简介 在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的 ...
- IntelliJ IDEA配置缓存地址
idea的配置缓存路径是保存配置文件和插件的本地目录,对idea上的所有个人修改全都储存在那里 相比于eclipse的免安装.解压即用来说,一旦系统重装或者idea重装又没有进行备份的情况下,个人对i ...
- VOIP概述
简介 VoIP(Voice over Internet Protocol)就是将模拟声音讯号(Voice)数字化,以数据封包(Data Packet)的型式在 IP 数据网络 (IP Network) ...
- 存储过程&Function
存储过程&Function 编号 类别 ORACLE MYSQL 注释 1 创建存储过程语句不同 create or replace procedure P_ADD_FAC( id_fac ...
- hdu 4435
一道枚举+搜索题: 很容易看出这道题目要求尽量不在大的城市里面建加油站: 所以从最大的城市开始枚举! 代码: #include<cstdio> #include<cmath> ...
- Gson把json串转换成java实体对象
Gson把json串转换成java实体对象的方法如下: 1.首先导入Gson的jar包,网上可以下载. java实体对象如下: public class Model { private double ...
- HTML Jquery;marquee标签
在<网页制作Dreamweaver(悬浮动态分层导航)>中,运用到了jQuery的技术,轻松实现了菜单的下拉.显示.隐藏的效果,不必再用样式表一点点地修改,省去了很多麻烦,那么jQuery ...
- PHP curl传输文件的版本兼容性
/** * 存储文件到远程服务器 * * @param string $filePath * 文件绝对路径 * @param string $fileSaveUrl * 存储的远程目标地址 * @pa ...