首页 > 其他分享 >Devexpress GridControl下拉框实现联动

Devexpress GridControl下拉框实现联动

时间:2024-04-20 18:23:20浏览次数:24  
标签:EditValueChanged gvmain rowIndex Devexpress bug RIcmbtype GridControl 下拉框

实现效果

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

1.点击设计器
img
2.绑定数据列
img

2. 绑定GridView的 FocusedRowChanged事件

img


  //定义两个下拉框  _RIcmbtype:不良分类  _RIcmbdefect:不良信息
  RepositoryItemComboBox _RIcmbtype = new RepositoryItemComboBox();
  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);
            }
        }

标签:EditValueChanged,gvmain,rowIndex,Devexpress,bug,RIcmbtype,GridControl,下拉框
From: https://www.cnblogs.com/wofeiliangren/p/18147972

相关文章

  • 界面组件库DevExpress Office File API(WinForms & WPF)v24.1新功能预览
    本文描述了界面组件库DevExpress的OfficeFileAPI(WinForms&WPF)和受Office启发的控件在v24.1中发布的一些功能,并详细介绍了我们当前的抢先体验预览版本v24.1中的内容。DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress......
  • 【转】[C#][WPF] GridControl 列宽控制
    在设置DevExpress里的GridControl自动列宽时,有两个方式:view.BestFitColumn(gridColumn);view.BestFitColumns();但我想要达到这样的效果:1、加载配置,读取列宽2、未配置列宽的列自动列宽发现可以这样组合://如果已配置列宽,自动列宽就是配置的宽度if(gridColumn.Widt......
  • DEV+GridControl实现反选
    最近在使用Dev+Winform,看了很多资料都是些复制粘贴,可能作者也没实践过,自己就记录总结下,也特别简单 主要代码,///<summary>///反选///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidsimpleButton5_Cl......
  • New!界面控件DevExpress WinForms v24.1预览版抢先体验
    DevExpressWinForm拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!在之前的文章中(点击这里回顾>>),我们为大家介绍了DevE......
  • GridControl列自动匹配宽度(转)
    //自动调整所有字段宽度this.gridView1.BestFitColumns();//调整某列字段宽度this.gridView1.Columns[n].BestFit(); 大多是网上零散找到的,小部分是自己使用的时候自己遇到的。 XtraGrid的关键类就是:GridControl和GridView。GridControl本身不显示数据,数据都是显示在Grid......
  • DevExpress使用方法GridControl总结 (转)
    DevExpress使用方法GridControl总结1.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值 sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();3.数据只读 gridView1.OptionsBehavior.Edit......
  • 界面控件DevExpress Blazor UI v23.2 - 浅谈增强的可访问性
    DevExpress BlazorUI组件库提供了一套全面的原生Blazor组件(包括DataGrid、PivotGrid、调度程序、图表、数据编辑器和报表),使用C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验!获取DevExpressv23.2正式版下载DevExpress技术交流群10:532598169      欢迎......
  • 界面组件DevExpress WinForms v23.2 - 数据展示、UI模板功能全新升级
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件日前正式发布了v23.2,此版......
  • layUI select下拉框动态赋值和设置选中值
    layUIselect下拉框动态赋值和设置选中值<script>layui.use(['form','layedit','laydate'],function(){var$=layui.jquery;$.ajax({url:'../api/SysType/GetArticleType?parentId=1',//json文......
  • Devexpress 控件学习记录(一:BarManager 控件、XtraTabbedMdiManager 控件)
    BarManager控件最终实现的效果如下:首先在窗体中拖出BarManager控件,窗体Baradd地方点击添加设置BarManager的属性设置出现的窗体的底部【DockStyle=Bottom】点击AddDropDownMenu添加下拉菜单出现下拉菜单设置下拉菜单中的子菜单选中下拉菜单,然后点击下面的Add......