Hello!
I've been trying to find the workaround for the following problem for the last couple of hours, but without any success. I've found many of the possible solutions on the Internet, but none of them was solution to my problem.
The problem occurs when I want to insert data into empty datasource. I've been able to find workarounds for RadComboBoxes, but not for the Textboxes. The error that is displayed is: "DataBinding: 'Telerik.Web.UI.GridInsertionObject' does not contain a property with the name 'OpciPrioritet'."
Here is the code:
.ascx (needed for the RadGrid)
.aspx.cs:
.aspx (only the needed snippet):
Any help would be appreciated as this is pretty much urgent!
I've been trying to find the workaround for the following problem for the last couple of hours, but without any success. I've found many of the possible solutions on the Internet, but none of them was solution to my problem.
The problem occurs when I want to insert data into empty datasource. I've been able to find workarounds for RadComboBoxes, but not for the Textboxes. The error that is displayed is: "DataBinding: 'Telerik.Web.UI.GridInsertionObject' does not contain a property with the name 'OpciPrioritet'."
Here is the code:
.ascx (needed for the RadGrid)
<table> <tr> <td> Nadređeni ticket: </td> <td colspan="3"> <telerik:RadComboBox ID="rcbNadredeniTicket" AppendDataBoundItems="true" runat="server" Width="455px"> </telerik:RadComboBox> </td> </tr> <tr> <td> Prijavio: </td> <td colspan="3"> <telerik:RadComboBox ID="rcbPrijavio" AppendDataBoundItems="true" runat="server" Width="455px"> </telerik:RadComboBox> </td> </tr> <tr> <td> Asset: </td> <td colspan="3"> <telerik:RadComboBox ID="rcbAsset" 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" runat="server"> </telerik:RadComboBox> </td> </tr> <tr> <td> Status: </td> <td> <telerik:RadComboBox ID="rcbStatus" 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> Bilješke: </td> <td colspan="3"> <asp:TextBox ID="txtBiljeske" runat="server" TextMode="MultiLine" Width="455px" Height="200px" Text='<%# DataBinder.Eval(Container, "DataItem.Biljeske") %>'></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>.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(); TicketAsset ticketAsset = new TicketAsset(); 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.Text = "'<%# DataBinder.Eval(Container, 'DataItem.Tip') %>'"; 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.Text = "'<%# DataBinder.Eval(Container, 'DataItem.Status') %>'"; 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(); rcbVrstaPrijave.Text = "'<%# DataBinder.Eval(Container, 'DataItem.VrstaPrijave') %>'"; 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.Text = "'<%# DataBinder.Eval(Container, 'DataItem.Prioritet') %>'"; RadComboBox rcbNadredeniTicket = (RadComboBox)userControl.FindControl("rcbNadredeniTicket"); var nadredenTicketList = (from t in db.Ticket select t).ToList(); if (nadredenTicketList.Count > 0) { rcbNadredeniTicket.DataSource = from t in nadredenTicketList where t.idFirma == idFirma && 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.Items.Add(new RadComboBoxItem("Bez nadređenog ticketa", "0")); rcbNadredeniTicket.DataBind(); RadComboBox rcbPrijavio = (RadComboBox)userControl.FindControl("rcbPrijavio"); rcbPrijavio.DataSource = from k in db.Kontakt where k.idFirma == idFirma select new { k.idKontakt, kontaktNaziv = k.Ime + " " + k.Prezime }; rcbPrijavio.Items.Add(new RadComboBoxItem("Bez kontakta", "0")); rcbPrijavio.DataTextField = "kontaktNaziv"; rcbPrijavio.DataValueField = "idKontakt"; rcbPrijavio.Text = "'<%# DataBinder.Eval(Container, 'DataItem.idKontakt') %>'"; rcbPrijavio.DataBind(); RadComboBox rcbAsset = (RadComboBox)userControl.FindControl("rcbAsset"); var assetList = (from a in db.Asset where a.idFirma == idFirma select a).ToList(); if (assetList.Count > 0) { var assets = from a in assetList where a.idFirma == idFirma select new { a.idAsset, Naziv = a.Naziv + " (" + a.Kontakt.Ime + " " + a.Kontakt.Prezime + ")" }; rcbAsset.DataSource = assets; rcbAsset.DataTextField = "Naziv"; rcbAsset.DataValueField = "idAsset"; rcbAsset.Text = "'<%# DataBinder.Eval(Container, 'DataItem.Naziv') %>'"; rcbAsset.Items.Add(new RadComboBoxItem("Bez pridruženog asseta", "0")); 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; 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 nadredeniTicket = Convert.ToInt32(ticket.idNadredeniTicket); if (ticket.idNadredeniTicket == null) { 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; } } }}.aspx (only the needed snippet):
<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" onupdatecommand="gvTicketi_UpdateCommand"> <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="idKontakt"> </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>Any help would be appreciated as this is pretty much urgent!