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
SIGN IN To post a reply.
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") = "";
> }
>}
>
SIGN IN To post a reply.
- 5 Replies
- 2 Participants
-
LM Lan Mo
- May 30, 2005 07:56 PM UTC
- May 31, 2005 06:15 PM UTC