Hi!
I have a RadGrid with UserControl within EditForm which has couple of ComboBoxes in it. What I'd like to do is to bind data to ComboBoxes depending of the value selected in the first ComboBox. ComboBoxes are bound in the ItemDataBound event of the RadGrid and the code there looks like this:
My question is how can I fill ComboBoxes depending of the selection in the first ComboBox, but within the ItemDataBound event?
Any help would be appreciated!
Regards,
Hrvoje
I have a RadGrid with UserControl within EditForm which has couple of ComboBoxes in it. What I'd like to do is to bind data to ComboBoxes depending of the value selected in the first ComboBox. ComboBoxes are bound in the ItemDataBound event of the RadGrid and the code there looks like this:
protected void gvTicketi_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e){ int idAuthenticatedManager = Convert.ToInt32(Session["authenticatedUI"]); if ((e.Item is GridEditFormItem) && e.Item.IsInEditMode) { GridEditFormItem editFormItem = (GridEditFormItem)e.Item; UserControl userControl = (UserControl)e.Item.FindControl(GridEditFormItem.EditFormUserControlID); TSEntities db = new TSEntities(); Ticket ticket = new Ticket(); TicketAsset ticketAsset = new TicketAsset(); Daily daily = new Daily(); RadComboBox rcbTip = (RadComboBox)userControl.FindControl("rcbTip"); rcbTip.Items.Add(new RadComboBoxItem("Incident")); rcbTip.Items.Add(new RadComboBoxItem("Reklamacija")); rcbTip.Items.Add(new RadComboBoxItem("Nova funkcionalnost")); rcbTip.DataBind(); rcbTip.FindItemByText("Incident").Selected = true; RadComboBox rcbStatus = (RadComboBox)userControl.FindControl("rcbStatus"); rcbStatus.Items.Add(new RadComboBoxItem("New")); rcbStatus.Items.Add(new RadComboBoxItem("U radu")); rcbStatus.Items.Add(new RadComboBoxItem("On hold")); rcbStatus.Items.Add(new RadComboBoxItem("Pending")); rcbStatus.Items.Add(new RadComboBoxItem("Scheduled")); rcbStatus.Items.Add(new RadComboBoxItem("Canceled")); rcbStatus.Items.Add(new RadComboBoxItem("Completed")); rcbStatus.DataBind(); rcbStatus.FindItemByText("New").Selected = true; RadComboBox rcbVrstaPrijave = (RadComboBox)userControl.FindControl("rcbVrstaPrijave"); rcbVrstaPrijave.Items.Add(new RadComboBoxItem("Odaberi vrstu prijave")); rcbVrstaPrijave.Items.Add(new RadComboBoxItem("Usmeno")); rcbVrstaPrijave.Items.Add(new RadComboBoxItem("Telefon")); rcbVrstaPrijave.Items.Add(new RadComboBoxItem("E-mail")); rcbVrstaPrijave.Items.Add(new RadComboBoxItem("Web")); rcbVrstaPrijave.DataBind(); RadComboBox rcbPrioritet = (RadComboBox)userControl.FindControl("rcbPrioritet"); rcbPrioritet.Items.Add(new RadComboBoxItem("Low")); rcbPrioritet.Items.Add(new RadComboBoxItem("Normal")); rcbPrioritet.Items.Add(new RadComboBoxItem("High")); rcbPrioritet.Items.Add(new RadComboBoxItem("Odmah")); rcbPrioritet.DataBind(); rcbPrioritet.FindItemByText("Normal").Selected = true; RadComboBox rcbTvrtka = (RadComboBox)userControl.FindControl("rcbTvrtka"); var tvrtkeList = (from t in db.Firma select t).ToList(); rcbTvrtka.DataSource = from t in tvrtkeList select new { t.idFirma, t.Naziv }; rcbTvrtka.DataTextField = "Naziv"; rcbTvrtka.DataValueField = "idFirma"; rcbTvrtka.Text = "'<%# DataBinder.Eval(Container, 'DataItem.idFirma') %>'"; rcbTvrtka.DataBind(); rcbTvrtka.Enabled = true; RadComboBox rcbNadredeniTicket = (RadComboBox)userControl.FindControl("rcbNadredeniTicket"); rcbNadredeniTicket.Items.Add(new RadComboBoxItem("Bez nadređenog ticketa", "0")); var nadredenTicketList = (from t in db.Ticket select t).ToList(); if (nadredenTicketList.Count > 0) { rcbNadredeniTicket.DataSource = from t in nadredenTicketList where t.Zatvoren == false select new { t.idTicket, t.idNadredeniTicket, OpisTicketa = t.idTicket + " - " + t.Opis }; rcbNadredeniTicket.DataTextField = "OpisTicketa"; rcbNadredeniTicket.DataValueField = "idTicket"; rcbNadredeniTicket.Text = "'<%# DataBinder.Eval(Container, 'DataItem.idNadredeniTicket') %>'"; } rcbNadredeniTicket.DataBind(); RadComboBox rcbPrijavio = (RadComboBox)userControl.FindControl("rcbPrijavio"); rcbPrijavio.Items.Add(new RadComboBoxItem("Bez kontakta", "0")); rcbPrijavio.DataSource = from k in db.Kontakt select new { k.idKontakt, kontaktNaziv = k.Ime + " " + k.Prezime }; rcbPrijavio.DataTextField = "kontaktNaziv"; rcbPrijavio.DataValueField = "idKontakt"; rcbPrijavio.Text = "'<%# DataBinder.Eval(Container, 'DataItem.idKontakt') %>'"; rcbPrijavio.DataBind(); RadComboBox rcbZaprimio = (RadComboBox)userControl.FindControl("rcbZaprimio"); rcbZaprimio.DataSource = from k in db.Kontakt select new { k.idKontakt, kontaktNaziv = k.Ime + " " + k.Prezime }; rcbZaprimio.DataTextField = "kontaktNaziv"; rcbZaprimio.DataValueField = "idKontakt"; rcbZaprimio.Text = "'<%# DataBinder.Eval(Container, 'DataItem.idManager') %>'"; rcbZaprimio.DataBind(); rcbZaprimio.FindItemByValue(idAuthenticatedManager.ToString()).Selected = true; rcbZaprimio.Enabled = false; RadComboBox rcbAsset = (RadComboBox)userControl.FindControl("rcbAsset"); rcbAsset.Items.Add(new RadComboBoxItem("Bez pridruženog asseta", "0")); var assetList = (from a in db.Asset select a).ToList(); if (assetList.Count > 0) { rcbAsset.DataSource = from a in assetList select new { a.idAsset, a.Naziv }; rcbAsset.DataTextField = "Naziv"; rcbAsset.DataValueField = "idAsset"; rcbAsset.Text = "'<%# DataBinder.Eval(Container, 'DataItem.Naziv') %>'"; rcbAsset.DataBind(); } if (!e.Item.OwnerTableView.IsItemInserted) { int idTicket = Convert.ToInt32(editFormItem.GetDataKeyValue("idTicket")); ticket = db.Ticket.SingleOrDefault(t => t.idTicket == idTicket); double sumaVremena = 0; var tickets = from d in db.Daily where d.idTicket == idTicket select d; foreach (var ticketDaily in tickets) { sumaVremena += ticketDaily.EfektivnoSati; } TextBox txtUtrosenoVrijeme = (TextBox)userControl.FindControl("txtUtrosenoVrijeme"); txtUtrosenoVrijeme.Text = sumaVremena.ToString(); string tip = ticket.Tip; rcbTip.Items.FindItemByText(tip).Selected = true; string status = ticket.Status; rcbStatus.Items.FindItemByText(status).Selected = true; string vrstaPrijave = ticket.VrstaPrijave; rcbVrstaPrijave.Items.FindItemByText(vrstaPrijave).Selected = true; string prioritet = ticket.Prioritet; rcbPrioritet.Items.FindItemByText(prioritet).Selected = true; int idTvrtka = ticket.idFirma; rcbTvrtka.FindItemByValue(idTvrtka.ToString()).Selected = true; int kontakt = Convert.ToInt32(ticket.idKontakt); if (ticket.idKontakt == null) { rcbPrijavio.Items.FindItemByValue("0").Selected = true; } else { rcbPrijavio.Items.FindItemByValue(kontakt.ToString()).Selected = true; } int manager = Convert.ToInt32(ticket.idManager); rcbZaprimio.Items.FindItemByValue(manager.ToString()).Selected = true; int nadredeniTicket = Convert.ToInt32(ticket.idNadredeniTicket); if (ticket.idNadredeniTicket == ticket.idTicket) { rcbNadredeniTicket.Items.FindItemByValue("0").Selected = true; } else { rcbNadredeniTicket.Items.FindItemByValue(nadredeniTicket.ToString()).Selected = true; } var ticketAssetCount = from ta in db.TicketAsset where ta.idTicket == idTicket select ta; if (ticketAssetCount.Count() > 0) { ticketAsset = db.TicketAsset.SingleOrDefault(ta => ta.idTicket == idTicket); int asset = Convert.ToInt32(ticketAsset.idAsset); rcbAsset.Items.FindItemByValue(asset.ToString()).Selected = true; } else { rcbAsset.Items.FindItemByValue("0").Selected = true; } } }}My question is how can I fill ComboBoxes depending of the selection in the first ComboBox, but within the ItemDataBound event?
Any help would be appreciated!
Regards,
Hrvoje