Hello!
I'm having some serious issues with RadComboBox which behaves erratically. The problem is I can't bind the data from ItemDataBound event of the RadGrid to the RadComboBox that is inside the UserControl. I always get errors that there is something wrong with binding even though it should work properly.
Here are the code snippets:
TicketUserControl.ascx
TvrtkaWebForm.aspx (the one with RadGrid)
TvrtkaWebForm.aspx.cs:
The problem occurs in the line with RadComboBox rcbAsset. The problem is a bit urgent so any help would be appreciated!
I'm having some serious issues with RadComboBox which behaves erratically. The problem is I can't bind the data from ItemDataBound event of the RadGrid to the RadComboBox that is inside the UserControl. I always get errors that there is something wrong with binding even though it should work properly.
Here are the code snippets:
TicketUserControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TicketUserControl.ascx.cs" Inherits="IDE_Ticketing_System__Telerik_.UserControls.TicketUserControl" %><table> <tr> <td> Nadređeni ticket: </td> <td colspan="3"> <telerik:RadComboBox ID="rcbNadredeniTicket" DataTextField="OpisTicketa" DataValueField="idTicket" AppendDataBoundItems="true" Text='<%# DataBinder.Eval(Container, "DataItem.idNadredeniTicket") %>' runat="server" Width="455px"> </telerik:RadComboBox> </td> </tr> <tr> <td> Asset: </td> <td colspan="3"> <telerik:RadComboBox ID="rcbAsseti" AppendDataBoundItems="true" runat="server" Width="455px"> </telerik:RadComboBox> </td> </tr> <tr> <td> Opći prioritet: </td> <td> <asp:TextBox ID="txtOpciPrioritet" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.OpciPrioritet") %>'></asp:TextBox> </td> </tr> <tr> <td> Tip: </td> <td> <telerik:RadComboBox ID="rcbTip" Text='<%# DataBinder.Eval(Container, "DataItem.Tip") %>' runat="server"> </telerik:RadComboBox> </td> </tr> <tr> <td> Status: </td> <td> <telerik:RadComboBox ID="rcbStatus" Text='<%# DataBinder.Eval(Container, "DataItem.Status") %>' runat="server"> </telerik:RadComboBox> </td> </tr> <tr> <td> Datum prijave: </td> <td> <asp:TextBox ID="txtDatumPrijave" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.DatumPrijave") %>'></asp:TextBox> </td> <td> Vrsta prijave: </td> <td> <telerik:RadComboBox ID="rcbVrstaPrijave" Text='<%# DataBinder.Eval(Container, "DataItem.VrstaPrijave") %>' runat="server"> </telerik:RadComboBox> </td> </tr> <tr> <td> Prioritet: </td> <td> <telerik:RadComboBox ID="rcbPrioritet" Text='<%# DataBinder.Eval(Container, "DataItem.Prioritet") %>' runat="server"> </telerik:RadComboBox> </td> <td> Deadline: </td> <td> <asp:TextBox ID="txtDeadline" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.DatumDo") %>'></asp:TextBox> </td> </tr> <tr> <td> Opis: </td> <td colspan="3"> <asp:TextBox ID="txtOpis" runat="server" TextMode="MultiLine" Width="455px" Height="200px" Text='<%# DataBinder.Eval(Container, "DataItem.Opis") %>'></asp:TextBox> </td> </tr> <tr> <td> Zatvoren ticket: </td> <td> <asp:CheckBox ID="chkZatvoren" runat="server" Checked='<%# CheckNull(DataBinder.Eval(Container, "DataItem.Zatvoren")) %>' /> </td> </tr> <tr> <td> Opis zatvorenog ticketa: </td> <td colspan="3"> <asp:TextBox ID="txtOpisZatvorenog" runat="server" TextMode="MultiLine" Width="455px" Height="200px" Text='<%# DataBinder.Eval(Container, "DataItem.OpisZatvoren") %>'></asp:TextBox> </td> </tr> <tr> <td> <asp:Button ID="btnUpdate" Text="Spremi" runat="server" CommandName="Update" Visible='<%# !(DataItem is Telerik.Web.UI.GridInsertionObject) %>'> </asp:Button> <asp:Button ID="btnInsert" Text="Spremi" runat="server" CommandName="PerformInsert" Visible='<%# DataItem is Telerik.Web.UI.GridInsertionObject %>'></asp:Button> <asp:Button ID="btnCancel" Text="Odustani" runat="server" CausesValidation="False" CommandName="Cancel"></asp:Button> </td> </tr></table>TvrtkaWebForm.aspx (the one with RadGrid)
<telerik:RadGrid ID="gvTicketi" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" CellSpacing="0" GridLines="None" onneeddatasource="gvTicketi_NeedDataSource" onitemdatabound="gvTicketi_ItemDataBound" oninsertcommand="gvTicketi_InsertCommand"> <MasterTableView DataKeyNames="idTicket" CommandItemDisplay="TopAndBottom" InsertItemPageIndexAction="ShowItemOnCurrentPage"> <CommandItemSettings AddNewRecordText="Dodaj novi ticket" RefreshText="Prikaži sve tickete" /> <Columns> <telerik:GridBoundColumn UniqueName="idTicket" HeaderText="Ticket" DataField="idTicket"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="idKontakt" HeaderText="Kontakt" DataField="Kontakt"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="idManager" HeaderText="Manager" DataField="idManager"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Opis" HeaderText="Opis" DataField="Opis"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="TicketNumber" HeaderText="Broj ticketa" DataField="TicketNumber"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="DatumPrijave" HeaderText="Datum prijave" DataField="DatumPrijave" DataFormatString="{0:dd.MM.yyyy.}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="VrstaPrijave" HeaderText="Vrsta prijave" DataField="VrstaPrijave"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Tip" HeaderText="Tip" DataField="Tip"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Status" HeaderText="Status" DataField="Status"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Prioritet" HeaderText="Prioritet" DataField="Prioritet"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="OpciPrioritet" HeaderText="Opći prioritet" DataField="OpciPrioritet"> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Deadline" HeaderText="Deadline" DataField="DatumDo" DataFormatString="{0:dd.MM.yyyy.}"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn UniqueName="Zatvoren" HeaderText="Zatvoren" DataField="Zatvoren"> </telerik:GridCheckBoxColumn> <telerik:GridEditCommandColumn UniqueName="EditCommandColumn"> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn UniqueName="DeleteColumn" Text="Delete" CommandName="Delete" ConfirmDialogType="RadWindow" ConfirmText="Brisanje ticketa!" /> </Columns> <EditFormSettings UserControlName="UserControls/TicketUserControl.ascx" EditFormType="WebUserControl"> <EditColumn UniqueName="EditCommandColumn1"> </EditColumn> </EditFormSettings> </MasterTableView></telerik:RadGrid>TvrtkaWebForm.aspx.cs:
protected void gvTicketi_ItemDataBound(object sender, GridItemEventArgs e){ int idFirma = Convert.ToInt16(Request.QueryString["idt"]); 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(); 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(); 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(); RadComboBox rcbVrstaPrijave = (RadComboBox)userControl.FindControl("rcbVrstaPrijave"); 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(); CheckBox chkNadreden = (CheckBox)userControl.FindControl("chkNadreden"); RadComboBox rcbNadredeniTicket = (RadComboBox)userControl.FindControl("rcbNadredeniTicket"); var nadredenTicketList = (from t in db.Ticket select t).ToList(); rcbNadredeniTicket.DataSource = from t in nadredenTicketList where t.idFirma == idFirma && t.Zatvoren == false select new { t.idTicket, OpisTicketa = t.idTicket + " - " + t.Opis }; rcbNadredeniTicket.Items.Add(new RadComboBoxItem("Bez nadređenog ticketa", "0")); rcbNadredeniTicket.DataBind(); RadComboBox rcbAsset = (RadComboBox)userControl.FindControl("rcbAsset"); var ticketAssetList = (from a in db.Asset where a.idFirma == idFirma select a).ToList(); if (ticketAssetList.Count > 0) { var assets = from a in db.Asset where a.idFirma == idFirma select new { a.idAsset, a.Naziv }; rcbAsset.DataSource = assets; 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); 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; } } }The problem occurs in the line with RadComboBox rcbAsset. The problem is a bit urgent so any help would be appreciated!