winform将含有超过两列的DataTable值绑定到combobox,并有"请选择"或"全部"选择项

简介: #region 显示多列DataTable到combobox /// /// 显示多列DataTable到combobox /// /// 含有超过两列的...
        #region 显示多列DataTable到combobox
        /// <summary>
        /// 显示多列DataTable到combobox
        /// </summary>
        /// <param name="dataTable">含有超过两列的DataTable</param>
        /// <param name="comboBox">combobox控件名</param>
        /// <param name="TextColumn">显示的text对应的列</param>
        /// <param name="ValueColumn">value值对应的列</param>
        /// <param name="isNeedShowEmpty">是否显示‘请选择’</param>
        /// <param name="isNeedShowAll">是否显示‘全部’</param>
        public static void ToDataTableCombobox(DataTable dataTable, ComboBox comboBox, string TextColumn, string ValueColumn, bool isNeedShowEmpty, bool isNeedShowAll)
        {
            if (dataTable == null || comboBox == null || dataTable.Columns.Count == 0)
            {
                return;
            }
            DataTable dtnew = new DataTable();
            dtnew.Columns.Add("text");
            dtnew.Columns.Add("value");
            if (isNeedShowEmpty)
            {
                DataRow emptyRow = dtnew.NewRow();
                emptyRow[1] = "";
                emptyRow[0] = "--请选择--";
                dtnew.Rows.InsertAt(emptyRow, 0);
            }
            else if (isNeedShowAll)
            {
                DataRow emptyRow = dtnew.NewRow();
                emptyRow[1] = "";
                emptyRow[0] = "全部";
                dtnew.Rows.InsertAt(emptyRow, 0);
            }
            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                DataRow dr = dtnew.NewRow();
                dr["text"] = dataTable.Rows[i][TextColumn];
                dr["value"] = dataTable.Rows[i][ValueColumn];
                dtnew.Rows.Add(dr);
            }

            comboBox.DataSource = dtnew;//GetItemList()
            comboBox.DisplayMember = dtnew.Columns[0].ColumnName;//"text";
            comboBox.ValueMember = dtnew.Columns[1].ColumnName; //"value";
        }
        #endregion

相关文章
|
SQL XML Java
8、Mybatis-Plus 分页插件、自定义分页
这篇文章介绍了Mybatis-Plus的分页功能,包括如何配置分页插件、使用Mybatis-Plus提供的Page对象进行分页查询,以及如何在XML中自定义分页SQL。文章通过具体的代码示例和测试结果,展示了分页插件的使用和自定义分页的方法。
8、Mybatis-Plus 分页插件、自定义分页
|
9月前
|
数据采集 编解码 缓存
通义万相Wan2.1视频模型开源!视频生成模型新标杆,支持中文字效+高质量视频生成
通义万相Wan2.1视频模型开源!视频生成模型新标杆,支持中文字效+高质量视频生成
1529 0
|
JSON JavaScript 前端开发
Webpack配置详解——这一篇就够用了
Webpack配置详解——这一篇就够用了
Webpack配置详解——这一篇就够用了
|
NoSQL 网络协议 Linux
|
机器学习/深度学习 人工智能 自然语言处理
极智AI | 变形金刚大家族Transformer ViT CLIP BLIP BERT模型结构
大家好,我是极智视界,本文整理介绍一下 Transformer ViT CLIP BLIP BERT 模型结构。
1074 0
|
前端开发 API 数据格式
什么是uni.request()?如何使用它?
什么是uni.request()?如何使用它?
1754 0
|
Kubernetes 负载均衡 Cloud Native
Docker和K8s区别,使用场景,具体怎么使用以及详细命令
@[TOC](目录) Docker 和 Kubernetes(简称 K8s) 都是容器技术领域中非常重要的工具,但它们在构建、部署和管理容器化应用程序方面发挥着不同的作用。本文将详细介绍 Docker 和 Kubernetes 的区别、使用场景以及具体的命令使用方法。 # 一、Docker 和 Kubernetes 的区别 Docker 是一种轻量级容器技术,可用于打包、交付和运行应用程序。Docker 将应用程序和所有依赖项 (库、框架等) 打包到一个称为 Docker 镜像的容器中,然后将该镜像部署到主机或云平台上。Docker 的主要优势在于它可以在不同的环境中提供一致的应用程序运行环境
4585 1
|
存储 缓存 NoSQL
LSM-Tree - LevelDb了解和实现
LSM-Tree - LevelDb了解和实现
132 0
|
Java
JAVA JVM常见内存参数配置简析
JAVA JVM常见内存参数配置简析
505 0