Hi Sergey,
Thanks for your interest in Syncfusion Products.
I apologize for the delay caused in responding.
To customize the dropdownlist in a combobox cell based on the other column value of that corresponding record, you can handle the TableControlCurrentCellActivated and TableControlCurrentCellShowingDropDown events with similar kind of code as shown below which is implemented in the attached sample.
GridTableCellStyleInfo style = e.TableControl.GetTableViewStyleInfo(e.TableControl.CurrentCell.RowIndex, e.TableControl.CurrentCell.ColIndex);
GridCurrentCell cc = e.TableControl.CurrentCell;
if (style.TableCellIdentity.Column.Name == "Department" && cc.Renderer is GridComboBoxCellRenderer)
{
GridComboBoxCellRenderer rend = cc.Renderer as GridComboBoxCellRenderer;
if (rend != null)
{
if (style.TableCellIdentity.DisplayElement.Kind == DisplayElementKind.Record)
{
Record rec = style.TableCellIdentity.DisplayElement.GetRecord();
if (rec.GetValue("Year").ToString() == "I")
{
rend.ListBoxPart.Items.Clear();
rend.ListBoxPart.Items.AddRange(new object[] { "CIVIL", "MECHANICAL", "EEE", "ECE" });
}
else if (rec.GetValue("Year").ToString() == "II")
{
rend.ListBoxPart.Items.Clear();
rend.ListBoxPart.Items.AddRange(new object[] { "CSE", "IT", "BIO-TECH", "AERO" });
}
else if (rec.GetValue("Year").ToString() == "III")
{
rend.ListBoxPart.Items.Clear();
rend.ListBoxPart.Items.AddRange(new object[] { "MARINE", "CSE", "TEXTILE", "ECE" });
}
else if (rec.GetValue("Year").ToString() == "IV")
{
rend.ListBoxPart.Items.Clear();
rend.ListBoxPart.Items.AddRange(new object[] { "EEE", "MECHANICAL", "CSE", "AERO" });
}
}
}
}
Sample:
F91399-1524680981.zipRegards,
Rajadurai