To all,
This is basically a how to do question: First my scenario:
With Radgrid:
EditMode is set to InPlace
All rows within the grid are set to edit = true through the Pre-Render event of the grid.
All editable columns have a custom editor in the EditItemTemplate; RadCombos, raedNumerics and simple asp textboxes.
Date is retrieved through a DAL object within the NeedDataSource event
All editors retrieve their values through the ItemDataBound event of the grid
I have a custom ItemCommand template setup with Linkbuttons to perform the insert,update,delete commands
Here is the challenge I am facing:
When the grid appears all of my items are in edit mode which is desirable
I make a change to one of the textboxes on the grid and then I press Add New record in the ItemCommand template.
I want the new row to appear and it does but what is happening is that I am losing all other edits in all other rows.
I tried the solution of e.cancel in ItemCommand event but that doesn't seem to work, not only did I lose my edits but I did not get my new row to appear.
So I need advice on the following:
1. How do I preserve all data changes within all of my rows by simply clicking the Add new record itemcommand template and still get my new row to appear in the grid?
2. How can I also click on the Add new record template and receive multiple new rows as of now I only see that working one time until the data has been saved?
Thanks to all,
Rick
| .tab |
| { |
| background: transparent url(i/navigation-sprite.png) no-repeat; |
| width:95px; |
| height:26px; |
| text-decoration:none; |
| font-size:13px; |
| color:white !important; |
| background-position:0 0; |
| float:left; |
| text-align:center; |
| margin:0 2px; |
| line-height:26px; |
| } |
| .selectedTab |
| { |
| background-position:0 -26px; |
| font-weight:bold; |
| font-size:13px; |
| color:#187ecc !important; |
| background-image: transparent url(i/navigation-sprite.png) no-repeat !important; |
| } |
| .hoveredTab |
| { |
| background-image:url(i/navigation-sprite.png); |
| } |
| <telerik:RadTabStrip ID="RadTabStrip1" runat="server" SelectedIndex="0" |
| style="margin-top: 0" > |
| <Tabs> |
| <telerik:RadTab Text="Tab 1" CssClass="tab" SelectedCssClass="selectedTab" |
| HoveredCssClass="hoveredTab" Selected="True"> |
| </telerik:RadTab> |
| <telerik:RadTab Text="Tab 2" CssClass="tab" SelectedCssClass="selectedTab" HoveredCssClass="hoveredTab" > |
| </telerik:RadTab> |
| <telerik:RadTab Text="Tab 3" CssClass="tab" SelectedCssClass="selectedTab" HoveredCssClass="hoveredTab"> |
| </telerik:RadTab> |
| </Tabs> |
| </telerik:RadTabStrip> |

<telerik:RadGrid ID="RadGrid1" Skin="Office2007" runat="server" Width="95%" AutoGenerateColumns="False"
PageSize="7" AllowSorting="True" AllowPaging="True" GridLines="None" ShowStatusBar="true" AllowMultiRowSelection="true" >
<PagerStyle Mode="NumericPages"></PagerStyle>
<MasterTableView AllowMultiColumnSorting="True" DataKeyNames="dt1Id,Type" Width="100%" EnableNoRecordsTemplate="false" HierarchyLoadMode="serverBind" >
<Columns>
<telerik:GridBoundColumn SortExpression="dt1Id" HeaderText="DTID" HeaderButtonType="TextButton"
DataField="dt1Id" Resizable="True" Reorderable="True" Display="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression="Type" HeaderText="Type" HeaderButtonType="TextButton"
DataField="Type" Resizable="True" Reorderable="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression="Date" HeaderText="Date" HeaderButtonType="TextButton"
DataField="Date" Resizable="True" Reorderable="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression="Description" HeaderText="Description" HeaderButtonType="TextButton"
DataField="Description" Resizable="True" Reorderable="True">
</telerik:GridBoundColumn>
</Columns>
<DetailTables >
<telerik:GridTableView Caption="" AllowSorting="false" DataKeyNames="dt1Id,dt2Id" Width="100%" ShowHeader="false" EnableNoRecordsTemplate="false" HierarchyLoadMode="serverBind">
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="dt1Id" MasterKeyField="dt1Id" />
</ParentTableRelation>
<Columns>
<telerik:GridBoundColumn HeaderText="dt2Id" HeaderButtonType="TextButton"
DataField="dt2Id" Display="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Type" HeaderButtonType="TextButton"
DataField="Type">
<ItemStyle Width="207px" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Date" HeaderButtonType="TextButton"
DataField="Date">
<ItemStyle Width="67px" />
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="">
<ItemTemplate>
<asp:ImageButton id="imgbtn" imageurl="~/Images/btn_Edit.gif" runat="server" visible= <%# DataBinder.Eval(Container.DataItem, "Status")%>>
</asp:ImageButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn HeaderText="Description" HeaderButtonType="TextButton"
DataField="Description">
</telerik:GridBoundColumn>
</Columns>
<DetailTables>
<telerik:GridTableView Caption="" AllowSorting="false" DataKeyNames="dt2Id,dt3Id" Width="100%" ShowHeader="false" EnableNoRecordsTemplate="false" >
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="dt2Id" MasterKeyField="dt2Id" />
</ParentTableRelation>
<Columns>
<telerik:GridBoundColumn HeaderText="dt2Id" HeaderButtonType="TextButton"
DataField="dt2Id" Display="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Type" HeaderButtonType="TextButton"
DataField="Type">
<ItemStyle Width="207px" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Date" HeaderButtonType="TextButton"
DataField="Date">
<ItemStyle Width="67px" />
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="">
<ItemTemplate>
<asp:ImageButton id="imgbtn" imageurl="~/Images/btn_Edit.gif" runat="server" visible= <%# DataBinder.Eval(Container.DataItem, "Status")%>>
</asp:ImageButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn HeaderText="Description" HeaderButtonType="TextButton"
DataField="Description">
</telerik:GridBoundColumn>
</Columns>
<DetailTables>
<telerik:GridTableView Caption="" AllowSorting="false" DataKeyNames="dt3Id,Ins#" Width="100%" ShowHeader="false" EnableNoRecordsTemplate="false" >
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="dt3Id" MasterKeyField="dt3Id" />
</ParentTableRelation>
<Columns>
<telerik:GridBoundColumn HeaderText="dt3Id" HeaderButtonType="TextButton"
DataField="dt3Id" Display="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Ins#" HeaderButtonType="TextButton"
DataField="Ins#" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="P/A" HeaderButtonType="TextButton"
DataField="P/A" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Date" HeaderButtonType="TextButton"
DataField="Date" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Batch#" HeaderButtonType="TextButton"
DataField="Batch#" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Type" HeaderButtonType="TextButton"
DataField="Type" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="EDI File Name" HeaderButtonType="TextButton"
DataField="EDIFileName" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Status" HeaderButtonType="TextButton"
DataField="Status" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="HBOC File" HeaderButtonType="TextButton"
DataField="HBOCFile" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Rec.Date" HeaderButtonType="TextButton"
DataField="RecDate" Display="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn HeaderText="Rec.By" HeaderButtonType="TextButton"
DataField="RecBy" Display="True">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
</telerik:GridTableView>
</DetailTables>
</telerik:GridTableView>
</DetailTables>
</MasterTableView>
<ClientSettings>
<Selecting AllowRowSelect="true" />
</ClientSettings>
</telerik:RadGrid>
My code behind code
RadGrid1.DataSource = dtTable1
RadGrid1.MasterTableView.DataSource = dtTable1
RadGrid1.MasterTableView.DetailTables(0).DataSource = dtTable2
RadGrid1.MasterTableView.DetailTables(0).DetailTables(0).DataSource = dtTable3
RadGrid1.MasterTableView.DetailTables(0).DetailTables(0).DetailTables(0).DataSource = dtTable4
Table structure -dtTable1
| dt1Id | Type | Date | EmptyColumn | Description |
| 1 | Patient Encounters | 2 Cases. First DOS: 08/11/2006 , Last DOS: 10/31/2006 | ||
| 2 | Patient Statements | 9 Statements, Last Statement: Monthly Statement on 01/02/2008 - Statement Balance: 308 | ||
| 3 | Patient Notes | 1 Notes, Last note on 12/12/2006 |
| dt1Id | dt2Id | Type | Date | EmptyColumn | Description | Status |
| 1 | 2 | Case #: 38253 | 08/11/2006 | Batch #:ACF-081406-001 | TRUE | |
| 1 | 3 | Case #: 40081 | 10/31/2006 | Batch #:ACF-110106-001 | TRUE | |
| 2 | Daily Statement | 12/06/2006 | Statement Balance: 658 | FALSE | ||
| 2 | Monthly Statement | 01/03/2007 | Statement Balance: 658 | FALSE |
| dt2Id | dt3Id | Type | Date | EmptyColumn | Description | Status |
| 2 | 0 | 08/15/2006 | Data Entry Date | FALSE | ||
| 2 | 0 | 08/15/2006 | Coding Date | FALSE | ||
| 2 | 3 | 08/15/2006 | Claim - Physician Claim Submitted for 658 for Primary Carrier: MUTUAL OF OMAHA (Carrier Code: 24585) | TRUE | ||
| 2 | 3 | 10/03/2006 | Claim - Physician Claim Submitted for 658 for Secondary Carrier: UNITED AMERICAN INS CO (Carrier Code: 11088) | TRUE | ||
| 3 | 0 | 11/01/2006 | Data Entry Date | FALSE | ||
| 3 | 0 | 11/02/2006 | Coding Date | FALSE | ||
| 3 | 4 | 11/07/2006 | Claim - Assistant Claim Submitted for 455 for Primary Carrier: MUTUAL OF OMAHA (Carrier Code: 24585) | TRUE | ||
| 3 | 4 | 11/30/2006 | Claim - Assistant Claim Submitted for 455 for Secondary Carrier: UNITED AMERICAN INS CO (Carrier Code: 11088) | TRUE |
| dt2ID | dt3Id | Ins# | P/A | Date | Batch# |
| 2 | 3 | 48457 | P | 08/15/2006 | ACF-081506-004 |
| 2 | 3 | 48458 | P | 10/03/2006 | |
| 3 | 4 | 51376 | A | 11/07/2006 | ACF-110706-002 |
| 3 | 4 | 51377 | A | 11/30/2006 | ACF-113006-003 |