I have a rad grid that I have set the AllowAutomaticDeletes, Updates, and Inserts to False. This in the MsterTableView has a DetailTable. So it is Hierarchy gid. The top level works fine when I Insert or Update the grid comes out of editmode, and when I edit the DetailTable grid it will leave edit mode with no issue. The problem is when I insert a new record in the DetailTable on save it stays in edit mode. The data is saveed becuase when I hit the cancel button it shows the new record under the parent.
I'm I missing something
I'm I missing something
<
telerik:RadGrid
ID
=
"rgSoftware"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowFilteringByColumn
=
"false"
AllowSorting
=
"false"
GridLines
=
"Both"
AllowPaging
=
"false"
EnableViewState
=
"true"
Skin
=
"WebBlue"
ShowHeader
=
"true"
EnableAJAXLoadingTemplate
=
"True"
LoadingTemplateTransparency
=
"50"
ShowStatusBar
=
"True"
AllowAutomaticDeletes
=
"false"
AllowAutomaticUpdates
=
"False"
AllowAutomaticInserts
=
"False"
OnNeedDataSource
=
"rgSoftware_NeedDataSource"
OnInsertCommand
=
"rgSoftware_InsertCommand"
OnUpdateCommand
=
"rgSoftware_UpdateCommand"
OnDetailTableDataBind
=
"rgSoftware_DetailTableDataBind"
OnItemCommand
=
"rgSoftware_ItemCommand"
OnDataBound
=
"rgSoftware_DataBound"
>
<
MasterTableView
Font-Names
=
"Helvetica, Arial, Verdana, sans-serif"
Font-Size
=
"10px"
DataKeyNames
=
"SoftwareID"
Name
=
"SoftwareGroup"
Width
=
"100%"
runat
=
"server"
EditMode
=
"InPlace"
CommandItemDisplay
=
"Top"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"LicenseInfoID"
Name
=
"LicenseInfoID"
Width
=
"100%"
runat
=
"server"
Font-Size
=
"10px"
EditMode
=
"InPlace"
CommandItemDisplay
=
"Top"
AllowAutomaticInserts
=
"true"
AllowAutomaticUpdates
=
"true"
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UpdateImageUrl
=
"~/Images/Grid/Save.gif"
EditImageUrl
=
"~/Images/Grid/Edit.gif"
InsertImageUrl
=
"~/Images/Grid/Save.gif"
CancelImageUrl
=
"~/Images/Grid/Cancel.gif"
/>
<
telerik:GridBoundColumn
DataField
=
"LicenseInfoID"
Visible
=
"false"
/>
<
telerik:GridTemplateColumn
HeaderText
=
"Key"
UniqueName
=
"Key"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblKey"
runat
=
"server"
Text='<%# Eval("LicenseKey")%>' />
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"tbKey"
runat
=
"server"
Text='<%# Eval("LicenseKey")%>' Width="200px"
Font-Size="10px" />
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"# of Licenses"
UniqueName
=
"Qty"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblQty"
runat
=
"server"
Text='<%# Eval("NumberOfLicenses")%>' />
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadNumericTextBox
ID
=
"tbQty"
runat
=
"server"
text='<%# Eval("NumberOfLicenses")%>'
Width="30px" NumberFormat-DecimalDigits="0" ShowSpinButtons="false" Font-Size="10px" />
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridCheckBoxColumn
UniqueName
=
"chkActive"
DataField
=
"Active"
HeaderText
=
"Active"
/>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UpdateImageUrl
=
"~/Images/Grid/Save.gif"
EditImageUrl
=
"~/Images/Grid/Edit.gif"
InsertImageUrl
=
"~/Images/Grid/Save.gif"
CancelImageUrl
=
"~/Images/Grid/Cancel.gif"
/>
<
telerik:GridBoundColumn
DataField
=
"SoftwareID"
Visible
=
"false"
/>
<
telerik:GridTemplateColumn
HeaderText
=
"Software"
UniqueName
=
"SoftwareName"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblSoftwareName"
runat
=
"server"
Text='<%# Eval("SoftwareName")%>' />
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"tbSoftwareName"
runat
=
"server"
Text='<%# Eval("SoftwareName")%>'
Width="250px" Font-Size="10px" />
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Location"
UniqueName
=
"LocationOfSoftware"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblLocationOfSoftware"
runat
=
"server"
Text='<%# Eval("LocationOfSoftware")%>' />
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadTextBox
ID
=
"tbLocationOfSoftware"
runat
=
"server"
Text='<%# Eval("LocationOfSoftware")%>'
Width="250px" Font-Size="10px" />
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridCheckBoxColumn
HeaderText
=
"Active"
DataField
=
"Active"
UniqueName
=
"SoftwareActive"
/>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
AllowRowsDragDrop
=
"true"
>
</
ClientSettings
>
<
FilterMenu
EnableEmbeddedSkins
=
"False"
>
</
FilterMenu
>
</
telerik:RadGrid
>
protected void rgSoftware_InsertCommand(object source, GridCommandEventArgs e)
{
AssetDataDataContext db = new AssetDataDataContext();
GridEditableItem editedItem = e.Item as GridEditableItem;
if ("SoftwareGroup".Equals(e.Item.OwnerTableView.Name))
{
Software nSoftware = new Software();
SaveSoftwareGroup(nSoftware, editedItem);
db.Softwares.InsertOnSubmit(nSoftware);
}
else if ("LicenseInfoID".Equals(e.Item.OwnerTableView.Name))
{
GridDataItem parentItem = (GridDataItem)e.Item.OwnerTableView.ParentItem;
LicenseInfo nLicense = new LicenseInfo();
nLicense.SoftwareID = Int32.Parse(parentItem.OwnerTableView.DataKeyValues[parentItem.ItemIndex]["SoftwareID"].ToString());
SaveLicenseInfo(nLicense, editedItem);
db.LicenseInfos.InsertOnSubmit(nLicense);
}
db.SubmitChanges();
}
protected void rgSoftware_UpdateCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
AssetDataDataContext db = new AssetDataDataContext();
GridEditableItem editedItem = e.Item as GridEditableItem;
if ("SoftwareGroup".Equals(e.Item.OwnerTableView.Name))
{
Int32 SoftwareID = Int32.Parse(editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["SoftwareID"].ToString());
Software nSoftware = db.Softwares.SingleOrDefault(s => s.SoftwareID == SoftwareID);
SaveSoftwareGroup(nSoftware, editedItem);
}
else if ("LicenseInfoID".Equals(e.Item.OwnerTableView.Name))
{
//Get the primary key value using the DataKeyValue.
Int32 LicenseInfoID = Int32.Parse(editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["LicenseInfoID"].ToString());
LicenseInfo nLicense = db.LicenseInfos.SingleOrDefault(l => l.LicenseInfoID == LicenseInfoID);
SaveLicenseInfo(nLicense, editedItem);
}
db.SubmitChanges();
rgSoftware.MasterTableView.ClearEditItems();
}