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.