Hi and thank you for reading.
When I attempt an insert with the following, it enters the function correctly, but the KeyValues property is always empty and, thus, it never enters the loop over the dictionary from ExtractValuesFromItem. As a result, it inserted a new blank row.
It also may be relevant to mention that this page has two RadGrid instances, including this one, but they're operating on separate data sources with separate scripting. The other RadGrid works fine with similar code, however I'm not allowing inserts on that one.
I would appreciate any advice or suggestions.
ASP.Net:
C#:
Thank you in advance.
When I attempt an insert with the following, it enters the function correctly, but the KeyValues property is always empty and, thus, it never enters the loop over the dictionary from ExtractValuesFromItem. As a result, it inserted a new blank row.
It also may be relevant to mention that this page has two RadGrid instances, including this one, but they're operating on separate data sources with separate scripting. The other RadGrid works fine with similar code, however I'm not allowing inserts on that one.
I would appreciate any advice or suggestions.
ASP.Net:
<telerik:RadScriptBlock runat="server" ID="nono"> <telerik:RadGrid runat="server" ID="gridBids" OnNeedDataSource="gridBids_NeedDataSource" OnItemDataBound="gridBids_DataBound" OnUpdateCommand="gridBids_Update" OnInsertCommand="gridBids_Insert" OnDeleteCommand="gridBids_Delete" AutoGenerateColumns="false" Skin="Office2007" EnableAJAXLoadingTemplate="true" EnableAJAX="true" LoadingTemplateTransparency="25" ValidationSettings-CommandsToValidate="update,insert" ValidationSettings-ValidationGroup="gridBids"> <MasterTableView EditMode="InPlace" CommandItemDisplay="Top" AllowAutomaticDeletes="false" AllowAutomaticInserts="false" AllowAutomaticUpdates="false" DataKeyNames="blockbidsegmentid"> <CommandItemSettings ShowExportToExcelButton="true" ShowAddNewRecordButton="true" /> <Columns> <telerik:GridEditCommandColumn /> <telerik:GridTemplateColumn HeaderText="Carrier" UniqueName="bidCarrier"> <ItemTemplate><%# Eval("carrier") %></ItemTemplate> <EditItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidCarrier" MaxLength="2" Width="40px" Text='<%# Eval("carrier") %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidCarrier" MaxLength="2" Width="40px" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Flight#" UniqueName="bidFlightNum"> <ItemTemplate><%# Eval("flightnum") %></ItemTemplate> <EditItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidFlightNum" MaxLength="4" Width="75px" Text='<%# Eval("flightnum") %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidFlightNum" MaxLength="4" Width="75px" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="From" UniqueName="bidFrom"> <ItemTemplate><%# Eval("fromairportcode") %></ItemTemplate> <EditItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidFrom" Width="60px" MaxLength="3" Text='<%# Eval("fromairportcode") %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidFrom" Width="60px" MaxLength="3" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="To" UniqueName="bidTo"> <ItemTemplate><%# Eval("toairportcode") %></ItemTemplate> <EditItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidTo" Width="60px" MaxLength="3" Text='<%# Eval("toairportcode") %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidTo" Width="60px" MaxLength="3" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="COS" UniqueName="bidCOS"> <ItemTemplate><%# Eval("cos") %></ItemTemplate> <EditItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidCOS" Width="40px" MaxLength="1" Text='<%# Eval("cos") %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidCOS" Width="40px" MaxLength="1" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Depart Time" UniqueName="bidDepartTime"> <ItemTemplate><%# (Eval("departtime").ToString().Length > 0) ? DateTime.Parse(Eval("departtime").ToString()).ToString("ddMMMyy HH:mm") : "" %></ItemTemplate> <EditItemTemplate> <telerik:RadDatePicker runat="server" ID="txtBidDepartDate" Width="90px" DateInput-DateFormat="ddMMMyy" SelectedDate='<%# (Eval("departtime").ToString().Length > 0) ? DateTime.Parse(Eval("departtime").ToString()) : DateTime.Now %>' /> <telerik:RadMaskedTextBox runat="server" ID="txtBidDepartTime" Width="45px" Mask="##:##" Style="text-align:center;" Text='<%# (Eval("departtime").ToString().Length > 0) ? DateTime.Parse(Eval("departtime").ToString()).ToString("HH:mm") : "" %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadDatePicker runat="server" ID="txtBidDepartDate" Width="90px" DateInput-DateFormat="ddMMMyy" /> <telerik:RadMaskedTextBox runat="server" ID="txtBidDepartTime" Width="45px" Mask="##:##" Style="text-align:center;" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Arrive Time" UniqueName="bidArriveTime"> <ItemTemplate><%# (Eval("arrivetime").ToString().Length > 0) ? DateTime.Parse(Eval("arrivetime").ToString()).ToString("ddMMMyy HH:mm") : "" %></ItemTemplate> <EditItemTemplate> <telerik:RadDatePicker runat="server" ID="txtBidArriveDate" Width="90px" DateInput-DateFormat="ddMMMyy" SelectedDate='<%# (Eval("arrivetime").ToString().Length > 0) ? DateTime.Parse(Eval("arrivetime").ToString()) : DateTime.Now %>' /> <telerik:RadMaskedTextBox runat="server" ID="txtBidArriveTime" Width="45px" Mask="##:##" Style="text-align:center;" Text='<%# (Eval("arrivetime").ToString().Length > 0) ? DateTime.Parse(Eval("arrivetime").ToString()).ToString("HH:mm") : "" %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadDatePicker runat="server" ID="txtBidArriveDate" Width="90px" DateInput-DateFormat="ddMMMyy" /> <telerik:RadMaskedTextBox runat="server" ID="txtBidArriveTime" Width="45px" Mask="##:##" Style="text-align:center;" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Base Fare" UniqueName="bidBaseFare"> <ItemTemplate><%# String.Format("{0:C}", Eval("basefare")) %></ItemTemplate> <EditItemTemplate> <telerik:RadNumericTextBox runat="server" ID="txtBidBaseFare" Type="Currency" Width="90px" Style="text-align:right;" Value='<%# (Eval("basefare").ToString().Length > 0) ? Decimal.Parse(Eval("basefare").ToString()) : Decimal.Parse("0.00") %>' /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadNumericTextBox runat="server" ID="txtBidBaseFare" Type="Currency" Width="90px" Style="text-align:right;" /> </InsertItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Notes" UniqueName="bidNotes"> <ItemTemplate> <input type="button" name="btnShowBidNotes" value="Show All Notes" onClick="showAllNotes('<%# FormatNotes(Eval("notes"),true) %>');" /> <%# FormatNotes(Eval("notes"),false) %> </ItemTemplate> <EditItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidNotes" Rows="5" Columns="60" TextMode="MultiLine" Font-Size="Smaller" /> </EditItemTemplate> <InsertItemTemplate> <telerik:RadTextBox runat="server" ID="txtBidNotes" Rows="5" Columns="60" TextMode="MultiLine" Font-Size="Smaller" /> </InsertItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </telerik:RadScriptBlock>C#:
protected void gridBids_NeedDataSource(object sender, EventArgs ev) { this.gridBids.DataSource = this.bidsTable; } protected void gridBids_DataBound(object source, Telerik.Web.UI.GridItemEventArgs ev) { } protected void gridBids_Command(object source, Telerik.Web.UI.GridCommandEventArgs ev) { } protected void gridBids_Insert(object sender, GridCommandEventArgs ev) { if (!(ev.Item is GridEditableItem) || !ev.Item.IsInEditMode) return; DataRow row = this.bidsTable.NewRow(); GridEditableItem insertedItem = ev.Item.OwnerTableView.GetInsertItem(); if (this.m_editing) row["blockbidsegmentid"] = 0; else { DataRow[] currentRows = this.bidsTable.Select("", "blockbidsegmentid"); if (currentRows.Length > 0) row["blockbidsegmentid"] = ((int)currentRows[currentRows.Length - 1]["blockbidsegmentid"]) + 1; else row["blockbidsegmentid"] = 0; } Hashtable newValues = new Hashtable(); insertedItem.OwnerTableView.ExtractValuesFromItem(newValues, insertedItem); try { foreach (DictionaryEntry entry in newValues) { object val = entry.Value; string key = (string)entry.Key; string dbField = this.bidCols[Array.IndexOf(this.bidGridCols, key)]; if (dbField.Length == 0) continue; if (key == "bidCarrier" || key == "bidFrom" || key == "bidTo" || key == "bidCOS") val = val.ToString().ToUpper(); else if (key == "bidDepartTime") { TimeSpan departts = new TimeSpan(Int32.Parse((((RadMaskedTextBox)insertedItem["bidDepartTime"].FindControl("txtBidDepartTime")).Text).Substring(0, 2)), Int32.Parse((((RadMaskedTextBox)insertedItem["bidDepartTime"].FindControl("txtBidDepartTime")).Text).Substring(3)), 0); val = ((DateTime)((RadDatePicker)insertedItem["bidDepartTime"].FindControl("txtBidDepartDate")).SelectedDate).Date + departts; } else if (key == "bidArriveTime") { TimeSpan arrivets = new TimeSpan(Int32.Parse((((RadMaskedTextBox)insertedItem["bidArriveTime"].FindControl("txtBidArriveTime")).Text).Substring(0, 2)), Int32.Parse((((RadMaskedTextBox)insertedItem["bidArriveTime"].FindControl("txtBidArriveTime")).Text).Substring(3)), 0); val = ((DateTime)((RadDatePicker)insertedItem["bidArriveTime"].FindControl("txtBidArriveDate")).SelectedDate).Date + arrivets; } row[dbField] = val; } this.bidsTable.Rows.Add(row); this.gridBids.Rebind(); } catch (Exception ex) { gridBids.Controls.Add(new LiteralControl("Unable to insert record. Reason: " + ex.Message)); ev.Canceled = true; } }Thank you in advance.