实现效果

1.先在设计界面绑定数据列

1.点击设计器



2.绑定数据列

2. 绑定GridView的 FocusedRowChanged事件


//定义两个下拉框 _RIcmbtype:不良分类 _RIcmbdefect:不良信息
RepositoryItemComboBox _RIcmbtype = new RepositoryItemComboBox();
//设置下拉框的字体样式
_RIcmbtype.AppearanceDropDown.Font = new Font("Tahoma", 11);
_RIcmbtype.AppearanceDropDown.Options.UseFont = true;
RepositoryItemComboBox _RIcmbdefect = new RepositoryItemComboBox(); private void gvmain_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
if (gvmain.FocusedRowHandle >= 0)
{
_RIcmbtype.Items.Clear(); if (typeInfos.Count > 1)
{
foreach (var key in typeInfos)
{
_RIcmbtype.Items.Add(new ComboBoxItem(key.bug_typename));
}
} gvmain.Columns.ColumnByName("colbug_typename").ColumnEdit = _RIcmbtype; // 为第一列的下拉框添加EditValueChanged事件处理程序
_RIcmbtype.EditValueChanged += _RIcmbtype_EditValueChanged;
_RIcmbdefect.EditValueChanged += _RIcmbdefect_EditValueChanged;
}
}

3. 绑定下拉框的EditValueChanged事件


private void _RIcmbtype_EditValueChanged(object sender, EventArgs e)
{
// 获取当前行的索引
int rowIndex = gvmain.FocusedRowHandle;
if (rowIndex >= 0)
{
var s = (DevExpress.XtraEditors.ComboBoxEdit)sender; // 获取当前选中的值
string selectedValue = s.EditValue.ToString(); // gvmain.GetRowCellValue(rowIndex, "列名") 这种方法是获取不到选中的值的,原因是选择了,但是实际还未渲染到数据上去就触发了这个事件; //获取被选中的类型并给所在行赋值 PS:下面4行代码为业务代码 不用看
var type = typeInfos.First(a => a.bug_typename == selectedValue);
dataInfo[rowIndex].bug_typeid = type.bug_id;
dataInfo[rowIndex].bug_typecode = type.bug_typecode;
dataInfo[rowIndex].bug_typename = type.bug_typename;
//通过选择的下拉框的值来获取第二个下拉框的数据
var list = defectInfos.Where(a => a.bug_typename == selectedValue).ToList();
_RIcmbdefect.Items.Clear();
foreach (var key in list)
{
_RIcmbdefect.Items.Add(new ComboBoxItem(key.bug_describe));
}
//设置列的ColumnEdit 为下拉框
gvmain.Columns.ColumnByName("colbug_describe").ColumnEdit = _RIcmbdefect; // 刷新第二列以显示新的下拉选项
gvmain.InvalidateRow(rowIndex);
}
}

Devexpress GridControl下拉框实现联动的更多相关文章

  1. DevExpress gridview下拉框的再次研究

    原文:DevExpress gridview下拉框的再次研究 前几天写了一篇关于研究DevExpress gridview下拉框的随笔(DevExpress gridview下拉框repository ...

  2. DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项

    场景 DevExpress的下拉框控件ComboBoxEdit控件的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1028 ...

  3. DevExpress的下拉框控件ComboBoxEdit控件的使用

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  4. DevExpress GridControl 中下拉框联动效果的实现(及支持文本框录入情况)

    先解释一下标题: grid中的某一列默认为文本框,根据需要动态的变更为下拉框,且支持动态变更数据源 需求是这样的: 有一些参数(A),这些参数又分别对应另外的参数(B),所以,先把A作为一列,B根据A ...

  5. ASP.NET——实现两个下拉框动态联动

    引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 " ...

  6. DevExpress的下拉框控件LookUpEdit的使用、添加item选项值、修改默认显示值

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  7. C# MVC LayUI实现下拉框二级联动

    一.layui.use 1.LayUI的官方使用文档:https://www.layui.com/doc/ 2.layui的内置模块不是默认就加载好的,必须要执行启动模块的这种方法后模块才会加载: 3 ...

  8. asp 下拉框二级联动

    <script language = "JavaScript"> //js开始 var aaa;//定义aaa变量 aaa=0;//aaa赋0 bb = new Arr ...

  9. 通过创建元素从而实现三个下拉框的联动效果(create.Element("option"))和提交表单时的验证p.match("请选择")

    <html> <head> <meta charset="utf-8"> <title>下拉框</title> < ...

  10. DevExpress LookUpEdit 下拉框基本操作

    <span style="font-size:14px;"> ArrayList list = new ArrayList(); //遍历皮肤,放到列表中 foreac ...

随机推荐

  1. 洛谷P1432

    水一道绿题,整体思路和八数码很像,哈希表存解,然后常规模拟即可 #include<iostream> #include<utility> #include<queue&g ...

  2. 一天快速入门Django:从0到1创建属于自己的Web应用

    DjangoWeb开发 Day1 1. Django的安装 pip install django 2. 创建项目 2.1 终端创建 "python环境路径\scripts\django-ad ...

  3. Day 7 - 哈希与 KMP

    字符串哈希 定义 我们定义一个把字符串映射到整数的函数 \(f\),这个 \(f\) 称为是 \(\text{Hash}\) 函数. 我们希望这个函数 \(f\) 可以方便地帮我们判断两个字符串是否相 ...

  4. Known框架实战演练——进销存系统需求

    概述 该项目是一个开源.简易.轻量级的进销存管理系统,作为Known框架的实战演练项目. 项目代码:JxcLite 开源地址: https://gitee.com/known/JxcLite 功能模块 ...

  5. 2024 暑假友谊赛-热身2 (7.12)zhaosang

    E-E https://vjudge.net/problem/AtCoder-diverta2019_b 给你 a, b, c ,n就是问你有多少(ia+jb+k*c)等于n的答案i,j,k任意几个都 ...

  6. 毕业设计&毕业项目:基于springboot+vue实现的在线音乐平台

    一.前言 在当今数字化时代,音乐已经成为人们生活中不可或缺的一部分.随着技术的飞速发展,构建一个用户友好.功能丰富的在线音乐平台成为了许多开发者和创业者的目标.本文将介绍如何使用SpringBoot作 ...

  7. vue小知识~实现父子组件双向数据绑定

    vue的数据是单向数据流动,在子组件中是不可以修改父组件的数据的,但是还是可以通过其他方式间接修改父组件的数据. 核心思想:数据在哪个组件,就在哪个组件修改. 1,方式一:通过向子组件传递方法 这个方 ...

  8. BTC 地址

    比特币地址(Bitcoin Address)是用于接收和发送比特币的唯一标识符,类似于传统金融系统中的银行账号.一个比特币地址由一串字母和数字组成,通常以1.3或bc1开头,具体长度为26至35个字符 ...

  9. 30FPS和120FPS在游戏中的区别

    30FPS和120FPS的区别: 从动画上,时间尺度更小,渲染的时候物体单帧移动距离更小从物理引擎计算上,每一次的迭代更细致,计算更精确从渲染上:从触摸事件上,响应更及时,从触摸到屏幕,到系统捕捉,到 ...

  10. LeetCode513. 找树左下角的值

    题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/description/ 题目叙述: 给定一个二叉树的 根节点 root,请 ...