populate content of combobox according another combox picked value

Hello, On GridGroupingcontrol, I have two columns Table Name and Field Name, both are combobox dropdown list. I want to populate the content of field name combobox with the fields of table picked from table combobox. Any sample codes? lan

5 Replies

AD Administrator Syncfusion Team May 30, 2005 08:18 PM UTC

Try using the this.gridGroupingControl1.TableControlCurrentCellShowingDropDown event to set the second dropdown''s datasource. Here is a KB showing how to do this in a GridDataBoundGrid. The gridGroupingControl should be similar. http://www.syncfusion.com/Support/article.aspx?id=567


LM Lan Mo May 31, 2005 03:47 PM UTC

Hello, I try to replace the two events in GridGroupingControl. How I replace this line this.gridDataBoundGrid1[cc.RowIndex, SlaveColumn].Text = ""; besides, I want to use Column Name instead of ColumnIndex to identify master/slave columns because my form dynamicaaly load the field with user definied orders. Thanks, Lan >Try using the this.gridGroupingControl1.TableControlCurrentCellShowingDropDown event to set the second dropdown''s datasource. Here is a KB showing how to do this in a GridDataBoundGrid. The gridGroupingControl should be similar. >http://www.syncfusion.com/Support/article.aspx?id=567


AD Administrator Syncfusion Team May 31, 2005 04:58 PM UTC

Try code like this:
private void gridGroupingControl1_TableControlCurrentCellShowingDropDown(object sender, GridTableControlCurrentCellShowingDropDownEventArgs e)
{
	GridCurrentCell cc = e.TableControl.CurrentCell;
	GridTableCellStyleInfo style = e.TableControl.Model[cc.RowIndex, cc.ColIndex];
	GridRecord rec = style.TableCellIdentity.DisplayElement as GridRecord;
	if(rec != null)
	{
		rec.SetValue("theColumnName") = "";
	}
}


LM Lan Mo May 31, 2005 05:10 PM UTC

I tried. the object "rec" always null. >Try code like this: >
>private void gridGroupingControl1_TableControlCurrentCellShowingDropDown(object sender, GridTableControlCurrentCellShowingDropDownEventArgs e)
>{
>	GridCurrentCell cc = e.TableControl.CurrentCell;
>	GridTableCellStyleInfo style = e.TableControl.Model[cc.RowIndex, cc.ColIndex];
>	GridRecord rec = style.TableCellIdentity.DisplayElement as GridRecord;
>	if(rec != null)
>	{
>		rec.SetValue("theColumnName") = "";
>	}
>}
>


LM Lan Mo May 31, 2005 06:15 PM UTC

Hello, I used underline datasource to get the field data. Now it works OK for master/slave combobox on grigroupingcontrol. Thanks for help. Here is my code in the two events. //change slave combobox list according master combobox value private void gdBase_TableControlCurrentCellShowingDropDown(object sender, Syncfusion.Windows.Forms.Grid.Grouping.GridTableControlCurrentCellShowingDropDownEventArgs e) { GridCurrentCell cc = e.TableControl.CurrentCell; int ind=gdBase.Table.UnsortedRecords.IndexOf(this.gdBase.Table.CurrentRecord); if (ind<0) return; //ind=-1 no record DataRow dr = mGridDataSet.Tables[0].Rows[ind]; // underline datasource //1. TABLE DICT_FIELD if (mFormParam.TableName.ToUpper()=="DICT_FIELD") { string sName=gdBase.TableDescriptor.Columns[cc.ColIndex-1].Name.ToUpper(); if (sName=="LOOKUP_FIELD_CODE" || sName=="LOOKUP_FIELD_VAL" || sName=="LOOKUP_FLTR_FIELD" ) { GridComboBoxCellRenderer cr = cc.Renderer as GridComboBoxCellRenderer; if(cr != null) { //cc.ConfirmChanges(false); string sWhere = string.Format("TABLE_NAME = ''{0}''", dr["lookup_table"].ToString()); DataSet dsFldList=BL.Access.LoadDataSet("DICT_FIELD","FIELD_NAME",sWhere); cr.ListBoxPart.DataSource=dsFldList.Tables["DICT_FIELD"]; cr.ListBoxPart.DisplayMember ="FIELD_NAME"; cr.ListBoxPart.ValueMember ="FIELD_NAME"; } } return; } } // empty salve combobox when master combobox changed private void gdBase_TableControlCurrentCellChanged(object sender, Syncfusion.Windows.Forms.Grid.Grouping.GridTableControlEventArgs e) { GridCurrentCell cc = e.TableControl.CurrentCell; int ind=gdBase.Table.UnsortedRecords.IndexOf(this.gdBase.Table.CurrentRecord); if (ind<0) return; //ind=-1 no record DataRow dr = mGridDataSet.Tables[0].Rows[ind]; // underline datasource //1. TABLE DICT_FIELD - master/slave combobox if (mFormParam.TableName.ToUpper()=="DICT_FIELD") { if (gdBase.TableDescriptor.Columns[cc.ColIndex-1].Name.ToUpper()=="LOOKUP_TABLE" ) { cc.ConfirmChanges(false); dr["LOOKUP_FIELD_CODE"]= ""; dr["LOOKUP_FIELD_VAL"]= ""; dr["LOOKUP_FLTR_FIELD"]= ""; dr["LOOKUP_FLTR_VAL"]= ""; } return; } } >Try code like this: >
>private void gridGroupingControl1_TableControlCurrentCellShowingDropDown(object sender, GridTableControlCurrentCellShowingDropDownEventArgs e)
>{
>	GridCurrentCell cc = e.TableControl.CurrentCell;
>	GridTableCellStyleInfo style = e.TableControl.Model[cc.RowIndex, cc.ColIndex];
>	GridRecord rec = style.TableCellIdentity.DisplayElement as GridRecord;
>	if(rec != null)
>	{
>		rec.SetValue("theColumnName") = "";
>	}
>}
>

Loader.
Up arrow icon