您的位置:首页 > 其它

How to set up MultiComboBoxColumn?

2016-05-10 17:08 295 查看
Pls take a look at code below:

void radGridView1_CellBeginEdit(object sender, GridViewCellCancelEventArgs e) 

        { 

            if (radGridView1.ActiveEditor is RadMultiColumnComboBoxElement) 

            { 

                RadMultiColumnComboBoxElement multiComboBoxElement = (RadMultiColumnComboBoxElement)radGridView1.ActiveEditor; 

                multiComboBoxElement.EditorControl.MasterGridViewTemplate.AllowAddNewRow = true; 

                multiComboBoxElement.EditorControl.MasterGridViewTemplate.AddNewRowPosition = PinnedRowPosition.Top; 

                multiComboBoxElement.EditorControl.MasterGridViewTemplate.BestFitColumns(); 

                GridViewDataColumn colDetails = new GridViewDataColumn(); 

                colDetails.UniqueName = "Details"; 

                colDetails.HeaderText = "Details"; 

                colDetails.DataType = typeof(string); 

                multiComboBoxElement.Columns.Add(colDetails); 

            } 

        } 

void

radGridView1_CellEditorInitialized(
object

sender, GridViewCellEventArgs e)

{

    
RadMultiColumnComboBoxElement multiComboElement =
this
.radGridView1.ActiveEditor
as
RadMultiColumnComboBoxElement;

    
if

(multiComboElement !=
null
)

    
{

        
multiComboElement.EditorControl.MasterGridViewTemplate.BestFitColumns();

        
multiComboElement.DropDownStyle = RadDropDownStyle.DropDown;

        
multiComboElement.AutoFilter =
true
;


        
if

(multiComboElement.EditorControl.MasterGridViewTemplate.FilterExpressions.Count == 0)

        
{

            
FilterExpression autoFilter =
new
FilterExpression(multiComboElement.DisplayMember, FilterExpression.BinaryOperation.AND,

                
GridKnownFunction.StartsWith, GridFilterCellElement.ParameterName);

            
autoFilter.Parameters.Add(GridFilterCellElement.ParameterName,
true
);


            
multiComboElement.EditorControl.MasterGridViewTemplate.FilterExpressions.Add(autoFilter);

        
}

    
}

}


List<mast_tbl_Diagnosis> listdiagnosis;

GridViewMultiComboBoxColumn col_0;

GridViewMultiComboBoxColumn col_1;
 
 
private void CaseSheet_Load(object sender, EventArgs e) 
            // Form Load Event 
            col_0 = (GridViewMultiComboBoxColumn)GridCurrentProcedure.MasterGridViewTemplate.Columns[0]; 
            col_1 = (GridViewMultiComboBoxColumn)GridCurrentProcedure.MasterGridViewTemplate.Columns[1]; 
 
            listprocedure = objProcedureCodesData.SelectAll().Where(t1 => t1.Deleted == false).ToList(); 
 
            col_0.DataSource = listprocedure; 
            col_1.DataSource = listprocedure; 
 
 
            col_0.DisplayMember = "Proc_Code"; 
            col_0.ValueMember = "Proc_Code"; 
 
            col_1.DisplayMember = "Proc_Description"; 
            col_1.ValueMember = "Proc_Description";  
            col_0.DropDownStyle = col_1.DropDownStyle = RadDropDownStyle.DropDown;      
 
 
private void GridCurrentProcedure_CellBeginEdit(object sender, GridViewCellCancelEventArgs e) 
        { 
 
            if (GridCurrentProcedure.ActiveEditor is RadMultiColumnComboBoxElement) 
            { 
 
                RadMultiColumnComboBoxElement multiColumnComboElement = (RadMultiColumnComboBoxElement)GridCurrentProcedure.ActiveEditor; 
 
                multiColumnComboElement.AutoSizeDropDownToBestFit = true; 
                multiColumnComboElement.AutoFilter = true; 
                multiColumnComboElement.DropDownSizingMode = SizingMode.UpDownAndRightBottom; 
 
                if (multiColumnComboElement.Columns.Count > 0) 
                    return; 
 
 
                GridViewTextBoxColumn column = new GridViewTextBoxColumn("ID"); 
                column.HeaderText = "ID"; 
                column.IsVisible = false; 
                multiColumnComboElement.Columns.Add(column); 
 
 
                column = new GridViewTextBoxColumn("Proc_Code"); 
                column.HeaderText = "Proc_Code"; 
                multiColumnComboElement.Columns.Add(column); 
 
                column = new GridViewTextBoxColumn("Proc_Description"); 
                column.HeaderText = "Procedure Description"; 
                multiColumnComboElement.Columns.Add(column); 
 
                if (e.ColumnIndex == 0) 
                { 
                    multiColumnComboElement.SelectedIndexChanged += new EventHandler(ProcCode_multiColumnComboElement_SelectedIndexChanged); 
                } 
                else 
                    multiColumnComboElement.SelectedIndexChanged += new EventHandler(ProcDescription_multiColumnComboElement_SelectedIndexChanged); 
 
 
            } 
 
        } 
 
        private void GridCurrentProcedure_CellEditorInitialized(object sender, GridViewCellEventArgs e) 
        { 
 
            RadMultiColumnComboBoxElement multiComboElement = this.GridCurrentProcedure.ActiveEditor as RadMultiColumnComboBoxElement; 
            if (multiComboElement != null) 
            { 
                multiComboElement.EditorControl.MasterGridViewTemplate.BestFitColumns(); 
                multiComboElement.AutoFilter = true; 
 
                if (multiComboElement.EditorControl.MasterGridViewTemplate.FilterExpressions.Count == 0) 
                { 
                    FilterExpression autoFilter = new FilterExpression("Proc_Code", FilterExpression.BinaryOperation.AND, 
                        GridKnownFunction.StartsWith, GridFilterCellElement.ParameterName); 
                    autoFilter.Parameters.Add(GridFilterCellElement.ParameterName, string.Empty); 
                    multiComboElement.EditorControl.MasterGridViewTemplate.FilterExpressions.Add(autoFilter); 
 
                    autoFilter = new FilterExpression("Proc_Description", FilterExpression.BinaryOperation.AND, 
                          GridKnownFunction.StartsWith, GridFilterCellElement.ParameterName); 
                    autoFilter.Parameters.Add(GridFilterCellElement.ParameterName, string.Empty); 
                    multiComboElement.EditorControl.MasterGridViewTemplate.FilterExpressions.Add(autoFilter); 
 
                } 
            } 
 
        } 
 
 
 void ProcCode_multiColumnComboElement_SelectedIndexChanged(object sender, EventArgs e) 
        { 
 
            if (GridCurrentProcedure.ActiveEditor is RadMultiColumnComboBoxElement) 
            { 
                RadMultiColumnComboBoxElement multiColumnComboElement = (RadMultiColumnComboBoxElement)GridCurrentProcedure.ActiveEditor; 
 
                multiColumnComboElement.SelectedIndexChanged -= new EventHandler(ProcDescription_multiColumnComboElement_SelectedIndexChanged); 
 
                try 
                { 
                    GridViewRowInfo row = multiColumnComboElement.EditorControl.CurrentRow; 
                    if (row != null) 
                    { 
                        GridCurrentProcedure.CurrentRow.Cells[1].Value = row.Cells[2].Value; 
                        GridCurrentProcedure.CurrentRow.Cells[2].Value = row.Cells[0].Value; 
                    } 
                } 
                catch { } 
 
                multiColumnComboElement.SelectedIndexChanged += new EventHandler(ProcDescription_multiColumnComboElement_SelectedIndexChanged); 
            } 
        } 
        void ProcDescription_multiColumnComboElement_SelectedIndexChanged(object sender, EventArgs arg) 
        { 
            if (GridCurrentProcedure.ActiveEditor is RadMultiColumnComboBoxElement) 
            { 
                RadMultiColumnComboBoxElement multiColumnComboElement = (RadMultiColumnComboBoxElement)GridCurrentProcedure.ActiveEditor; 
                multiColumnComboElement.SelectedIndexChanged -= new EventHandler(ProcCode_multiColumnComboElement_SelectedIndexChanged); 
 
                try 
                { 
                    GridViewRowInfo row = multiColumnComboElement.EditorControl.CurrentRow; 
                    if (row != null) 
                    { 
                        GridCurrentProcedure.CurrentRow.Cells[0].Value = row.Cells[1].Value; 
                        GridCurrentProcedure.CurrentRow.Cells[2].Value = row.Cells[0].Value; 
                    } 
                } 
                catch { } 
 
                multiColumnComboElement.SelectedIndexChanged += new EventHandler(ProcCode_multiColumnComboElement_SelectedIndexChanged); 
            } 
        } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: