C#选择弹框控件使用(可多选)


 

点击事件触发此方法

private void selectCurryCode_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)

{

判断所选是否为空
if (this.SelectBeneficiary == null)
return;

//获取待选择项

通过字典获取数据方法获取对应数据
var dictList = VineERP.Utils.CommonDictHelper.GetCommonDictList("Currency");

判断是否存在数据
if (dictList == null || dictList.Count == 0)
return;

构造弹框

frmSelectedDialog<sys_common_dict> dialog = new frmSelectedDialog<sys_common_dict>("Code,CodeName", "代码,币种", "50,80");
dialog.AllowMultiSelect = true; //设置多选

获取控件所分配的窗体
dialog.Parent = this.ParentForm;
//根据当前内容,设置已选项
if (!string.IsNullOrEmpty(this.SelectBeneficiary.CurrencyCode))
{

将已选择项进行拆分
var codeArr = this.SelectBeneficiary.CurrencyCode.Split(',').ToList();
dialog.SelectedEntities = new List<sys_common_dict>();

默认勾选已选
foreach (var code in codeArr)
{
var dict = dictList.Find(p => p.Code == code);
if (dict != null)
dialog.SelectedEntities.Add(dict);
}
}
//传递待选择项,并返回选择项并处理
dialog.ShowDialog(dictList, p =>
{
if (p.SelectedEntities == null || p.SelectedEntities.Count == 0)
return;

this.SelectBeneficiary.CurrencyCode = string.Empty;

显示所有数据

foreach (var dict in p.SelectedEntities)
{
this.SelectBeneficiary.CurrencyCode += string.Format("{0}{1}",
string.IsNullOrEmpty(this.SelectBeneficiary.CurrencyCode) ? "" : ",", dict.Code);
}

});
}

 1    private void textBeneficiary_ItemChanged(object sender, EdwFramework.Controls.ChangedEventArgs e)
 2         {
 3             this.SelectBeneficiary.ChecklistInformation();
 4         }
 5 
 6         /// <summary>
 7         /// 弹出币种选择框
 8         /// </summary>
 9         /// <param name="sender"></param>
10         /// <param name="e"></param>
11         private void selectCurryCode_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
12         {
13             if (this.SelectBeneficiary == null)
14                 return;
15 
16             //获取待选择项
17             var dictList = VineERP.Utils.CommonDictHelper.GetCommonDictList("Currency");
18             if (dictList == null || dictList.Count == 0)
19                 return;
20 
21             frmSelectedDialog<sys_common_dict> dialog = new frmSelectedDialog<sys_common_dict>("Code,CodeName", "代码,币种", "50,80");
22             dialog.AllowMultiSelect = true; //设置多选
23             dialog.Parent = this.ParentForm;
24             //根据当前内容,设置已选项
25             if (!string.IsNullOrEmpty(this.SelectBeneficiary.CurrencyCode))
26             {
27                 var codeArr = this.SelectBeneficiary.CurrencyCode.Split(',').ToList();
28                 dialog.SelectedEntities = new List<sys_common_dict>();
29                 foreach (var code in codeArr)
30                 {
31                     var dict = dictList.Find(p => p.Code == code);
32                     if (dict != null)
33                         dialog.SelectedEntities.Add(dict);
34                 }
35             }
36             //传递待选择项,并返回选择项并处理
37             dialog.ShowDialog(dictList, p =>
38             {
39                 if (p.SelectedEntities == null || p.SelectedEntities.Count == 0)
40                     return;
41 
42                 this.SelectBeneficiary.CurrencyCode = string.Empty;
43                 foreach (var dict in p.SelectedEntities)
44                 {
45                     this.SelectBeneficiary.CurrencyCode += string.Format("{0}{1}",
46                         string.IsNullOrEmpty(this.SelectBeneficiary.CurrencyCode) ? "" : ",", dict.Code);
47                 }
48 
49             });
50         }

 弹框例子

 private void sel_CustomCodeList_Click(object sender, EventArgs e)
        {
            if (this.CurrCostParam == null || this.ViewState == ModelViewState.Normal)
                return;
            var RateService = EngineContext.Current.Resolve<IRepository<Customer>>();
            string companyid = User.CompanyId;
            var tempList = RateService.Search(p=>p.Companyid == companyid,false);
            frmSelectedDialog<Customer> dialog = new frmSelectedDialog<Customer>("CustomCode,ShortName", "代码,名称", "100,120");
            dialog.AllowMultiSelect = true;
            dialog.Parent = this.ParentForm;

            //根据当前内容,设置已选项
            if(!string.IsNullOrEmpty(this.CurrCostParam.CustomCodeList))
            {
                var codeArr = this.CurrCostParam.CustomCodeList.Split(',').ToList();
                dialog.SelectedEntities = new List<Customer>();
                foreach(var code in codeArr)
                {
                    var dict = tempList.Find(p => p.CustomCode == code);
                    if (dict != null)
                        dialog.SelectedEntities.Add(dict);
                }
            }

            //传递带选项,并返回选择项并处理
            dialog.ShowDialog(tempList,p=>
            {
                this.sel_CustomCodeList.Items.Clear();
                this.CurrCostParam.CustomCodeList =string.Empty;

                if (p.SelectedEntities == null || p.SelectedEntities.Count == 0)
                    return;

                foreach(var dict in p.SelectedEntities)
                {
                    this.sel_CustomCodeList.Items.Add(dict.CustomCode);
                    this.CurrCostParam.CustomCodeList +=string.Format("{0}{1}",
                      string.IsNullOrEmpty(this.CurrCostParam.CustomCodeList) ? "" : ",", dict.CustomCode);
                }
            });
        }

  排除已选过的客户

 private List<Customer> custList = new List<Customer>();
        /// <summary>
        /// 客户代码选择事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sel_CustomCodeList_Click(object sender, EventArgs e)
        {
            if (this.CurrCostParam == null || this.ViewState == ModelViewState.Normal)
                return;
            custList = VineERP.Utils.CustomerHelper.GetAllCustom(this.CurrCostParam.Companyid);

            if (custList == null || custList.Count == 0)
            {
                MessageDxUtil.ShowError("客户信息不存在");
                return;
            }
            #region 排除已设置客户
            string sql = string.Format(@"select fdw.List(a.CustomCodeList)
                        from tblCostParam a 
                        where a.CustomCodeList !='{0}' and a.Companyid='{1}'",
                        this.CurrCostParam.CustomCodeList, this.CurrCostParam.Companyid);

            var useCusotm = EdwFramework.Core.SqlClientFactory.Instance.ExecuteScalar(sql);
            if (!string.IsNullOrEmpty(useCusotm))
            {
                var useCustlist = useCusotm.Split(',').ToList();
                foreach (var cust in useCustlist)
                {
                    if (string.IsNullOrEmpty(cust))
                        continue;

                    custList.RemoveAll(p => p.CustomCode == cust);
                }
            }

            if (custList == null || custList.Count == 0)
            {
                MessageDxUtil.ShowError("所有客户都已完成成本参数设定");
                return;
            }
            #endregion

            frmSelectedDialog<Customer> dialog = new frmSelectedDialog<Customer>("CustomCode,ShortName", "代码,名称", "100,120");
            dialog.AllowMultiSelect = true;
            dialog.Parent = this.ParentForm;

            //根据当前内容,设置已选项
            if(!string.IsNullOrEmpty(this.CurrCostParam.CustomCodeList))
            {
                var codeArr = this.CurrCostParam.CustomCodeList.Split(',').ToList();
                dialog.SelectedEntities = new List<Customer>();
                foreach(var code in codeArr)
                {
                    var dict = custList.Find(p => p.CustomCode == code);
                    if (dict != null)
                        dialog.SelectedEntities.Add(dict);
                }
            }

            //传递带选项,并返回选择项并处理
            dialog.ShowDialog(custList, p =>
            {
                this.sel_CustomCodeList.Items.Clear();
                this.CurrCostParam.CustomCodeList =string.Empty;

                if (p.SelectedEntities == null || p.SelectedEntities.Count == 0)
                    return;

                foreach(var dict in p.SelectedEntities)
                {
                    this.sel_CustomCodeList.Items.Add(dict.CustomCode);
                    this.CurrCostParam.CustomCodeList +=string.Format("{0}{1}",
                      string.IsNullOrEmpty(this.CurrCostParam.CustomCodeList) ? "" : ",", dict.CustomCode);
                }
            });
        }

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM