• 大小: 9KB
    文件类型: .cs
    金币: 2
    下载: 3 次
    发布日期: 2021-06-25
  • 语言: C#
  • 标签: Search  DevExp  多选  

资源简介

网上参照过别人的SearchLookUpEdit 多选,但是代码不全,零零散散,经过2个星期代码编写,测试,整理出了SearchLookUpEdit 多选功能实现的代码. 过程不易.代码量虽然只有200多行,但是经过几个版本的优化,性能完美. 望参与的同仁有更好的优化方法可以贴出来交流.

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid.Views.Grid;

namespace DataBind
{
    public static class DataBind
    {

        public static void SearchLookUpDataBind(DataSet ds string valueMember string displayMember DevExpress.XtraEditors.SearchLookUpEdit searchLkpEdit bool isMultiSelect)
        {
            if (isMultiSelect)
            {
                searchLkpEdit.Properties.View.OptionsSelection.MultiSelect = true;
                searchLkpEdit.Properties.View.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;
                searchLkpEdit.Properties.View.OptionsCustomization.AllowSort = false;   //禁止点击标题排序

                EditorButton btnClear = new EditorButton(ButtonPredefines.Delete);

                searchLkpEdit.Properties.Buttons.Add(btnClear);

                searchLkpEdit.Popup += searchLkpEdit_Popup;

                searchLkpEdit.Buttonclick += searchLkpEdit_Buttonclick;

                searchLkpEdit.Closed += searchLkpEdit_Closed;

                searchLkpEdit.CustomDisplayText += searchLkpEdit_CustomDisplayText;

                searchLkpEdit.Properties.View.RowClick += searchLkpEditView_RowClick;

                //添加选择框列供多选并且置为未选择状态
                DataTable dt = ds.Tables[0];
                dt.Columns.Add(“选择“ typeof(bool));
                foreach (DataRow dr in dt.Rows)
                {
                    dr[“选择“] = 0;
                }
                dt.Columns[“选择“].SetOrdinal(0);

            }

            //绑定数据源
            searchLkpEdit.Properties.DataSource = ds.Tables[0];
            searchLkpEdit.Properties.ValueMember = valueMember;
            searchLkpEdit.Properties.DisplayMember = displayMember;
        }

        #region SearchLookUpEdit 控件多选私有方法
        /// 
        /// 弹出框事件
        /// 

        /// 
        /// 
        private static void searchLkpEdit_Popup(object sender EventArgs e)
        {
            DevExpress.XtraEditors.SearchLookUpEdit searchLkpEdit = sender as DevExpress.XtraEditors.SearchLookUpEdit;

            //得到当前SearchLookUpEdit弹出窗体
            DevExpress.XtraEditors.Popup.PopupSearchLookUpEditForm form = (sender as DevExpress.Utils.Win.IPopupControl).PopupWindow as DevExpress.XtraEditors.Popup.PopupSearchLookUpEditForm;
            DevExpress.XtraGrid.Editors.SearchEditLookUpPopup popup = form.Controls.OfType().FirstOrDefault();
            DevExpress.XtraLayout.LayoutControl layout = popup.Controls.OfType().FirstOrDefault();

            if (layout.Controls.OfType().Where(ct => ct.Name == “btOK“).FirstOrDefault() == null)
            {

  

评论

共有 条评论