Hi guys,
I have 5 Comboboxes, 1 main comboBox (Account) 3 additional ComboBoxes and 1 comboBox with a treeview that gets populated depending on the selected Value from the Main ComboBox. .
What is supposed to be happening is when i change select a new value from the Main comboBox all the other ones should be re populated with new data or cleared.
here is an example of how i am clearing the comboBoxes that depend on the Main one.
The only ComboBox that is giving me issues is the Category ComboBox, Please could someone explain the best way to clear / re populate a comboBox if the Main ComboBoxes value is changed.
Let me explain this properly.
The selection From ComboBox 1 Will populate comboBox 2.
When a selection from comboBox 2 is made, that will clear ComboBox 3 and 4 and will then populate ComboBox 3 and 4 with new data.
When a selection from comboBox 3 is made, that will clear ComboBox 5 and will then populate ComboBox 5 with new data.
The Above works but changing the Selected Value in the first comboBox (account) will only Reset the 2nd ComboBox and not the rest.
So By selecting a new value From the 1st ComboBox that should reset comboBoxes 2-5 to an empty value.
I have 5 Comboboxes, 1 main comboBox (Account) 3 additional ComboBoxes and 1 comboBox with a treeview that gets populated depending on the selected Value from the Main ComboBox. .
What is supposed to be happening is when i change select a new value from the Main comboBox all the other ones should be re populated with new data or cleared.
here is an example of how i am clearing the comboBoxes that depend on the Main one.
protected
void
cboAccount_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
RadComboBox cboSite = (RadComboBox)fvIncidentEdit.FindControl(
"cboSite"
);
RadTreeView trvSite = ((RadTreeView)cboSite.Controls[2].FindControl(
"trvSite"
));
trvSite.DataSource = Models.Site.LoadActiveSites(Convert.ToInt32(e.Value));
trvSite.DataBind();
trvSite.UnselectAllNodes();
cboSite.Text =
string
.Empty;
cboSite.SelectedIndex = -1;
PopulateSiteDependants();
}
protected
void
PopulateSiteDependants()
{
RadTreeView trvSite =
new
RadTreeView();
RadComboBox cboSite = (RadComboBox)fvIncidentEdit.FindControl(
"cboSite"
);
if
(cboSite.Controls[2].FindControl(
"trvSite"
) !=
null
)
{
trvSite = ((RadTreeView)cboSite.Controls[2].FindControl(
"trvSite"
));
RadTreeView trvLocation =
new
RadTreeView();
RadComboBox cboLocation = (RadComboBox)fvIncidentEdit.FindControl(
"cboLocation"
);
if
(cboLocation.Controls[2].FindControl(
"trvLocation"
) !=
null
)
{
if
(trvSite.SelectedNode !=
null
)
{
trvLocation = ((RadTreeView)cboLocation.Controls[2].FindControl(
"trvLocation"
));
trvLocation.DataSource = Models.Location.LoadActiveLocations(Convert.ToInt32(trvSite.SelectedNode.Value));
trvLocation.DataBind();
trvLocation.UnselectAllNodes();
}
else
{
trvLocation.DataSource =
null
;
}
cboLocation.Text =
string
.Empty;
cboLocation.SelectedIndex = -1;
}
RadTreeView trvDepartment =
new
RadTreeView();
RadComboBox cboDepartment = (RadComboBox)fvIncidentEdit.FindControl(
"cboDepartment"
);
if
(cboDepartment.Controls[2].FindControl(
"trvDepartment"
) !=
null
)
{
if
(trvSite.SelectedNode !=
null
)
{
trvDepartment = ((RadTreeView)cboDepartment.Controls[2].FindControl(
"trvDepartment"
));
trvDepartment.DataSource = Models.Department.LoadActiveDepartments(Convert.ToInt32(trvSite.SelectedNode.Value));
trvDepartment.DataBind();
trvDepartment.UnselectAllNodes();
}
else
{
trvDepartment.DataSource =
null
;
}
cboDepartment.Text =
string
.Empty;
cboDepartment.SelectedIndex = -1;
}
}
LoadCategories();
}
protected
void
LoadCategories()
{
RadTreeView trvDepartment =
new
RadTreeView();
RadComboBox cboDepartment = (RadComboBox)fvIncidentEdit.FindControl(
"cboDepartment"
);
if
(cboDepartment.Controls[2].FindControl(
"trvDepartment"
) !=
null
)
{
trvDepartment = ((RadTreeView)cboDepartment.Controls[2].FindControl(
"trvDepartment"
));
RadComboBox cboCategory = (RadComboBox)fvIncidentEdit.FindControl(
"cboCategory"
);
RadTreeView trvCategory = (RadTreeView)cboCategory.Controls[2].FindControl(
"trvCategory"
);
if
(trvDepartment.SelectedNode !=
null
)
{
trvCategory.DataSource = Models.QuestionCategoryNode.LoadActiveQuestionCategoryNodes(Convert.ToInt32(trvDepartment.SelectedNode.Value));
}
else
{
trvCategory.DataSource =Models.QuestionCategoryNode.LoadActiveQuestionCategoryNodes();
}
trvCategory.DataBind();
trvCategory.UnselectAllNodes();
cboCategory.Text =
string
.Empty;
cboCategory.SelectedIndex = -1;
}
}
The only ComboBox that is giving me issues is the Category ComboBox, Please could someone explain the best way to clear / re populate a comboBox if the Main ComboBoxes value is changed.
Let me explain this properly.
The selection From ComboBox 1 Will populate comboBox 2.
When a selection from comboBox 2 is made, that will clear ComboBox 3 and 4 and will then populate ComboBox 3 and 4 with new data.
When a selection from comboBox 3 is made, that will clear ComboBox 5 and will then populate ComboBox 5 with new data.
The Above works but changing the Selected Value in the first comboBox (account) will only Reset the 2nd ComboBox and not the rest.
So By selecting a new value From the 1st ComboBox that should reset comboBoxes 2-5 to an empty value.