資源簡(jiǎn)介
網(wǎng)上參照過別人的SearchLookUpEdit 多選,但是代碼不全,零零散散,經(jīng)過2個(gè)星期代碼編寫,測(cè)試,整理出了SearchLookUpEdit 多選功能實(shí)現(xiàn)的代碼.
過程不易.代碼量雖然只有200多行,但是經(jīng)過幾個(gè)版本的優(yōu)化,性能完美.
望參與的同仁有更好的優(yōu)化方法可以貼出來交流.
代碼片段和文件信息
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;???//禁止點(diǎn)擊標(biāo)題排序
????????????????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;
????????????????//添加選擇框列供多選并且置為未選擇狀態(tài)
????????????????DataTable?dt?=?ds.Tables[0];
????????????????dt.Columns.Add(“選擇“?typeof(bool));
????????????????foreach?(DataRow?dr?in?dt.Rows)
????????????????{
????????????????????dr[“選擇“]?=?0;
????????????????}
????????????????dt.Columns[“選擇“].SetOrdinal(0);
????????????}
????????????//綁定數(shù)據(jù)源
????????????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;
????????????//得到當(dāng)前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)
????????????{
??
- 上一篇:調(diào)用cyUSB.dllC#源碼
- 下一篇:C#馬的極小滿覆蓋
評(píng)論
共有 條評(píng)論