Puay Chai Tan
Top achievements
Rank 1
Puay Chai Tan
asked on 30 Jul 2010, 06:02 AM
Hi,
how to Insert into detail table section in Hierarchical Radgrid by clicking the button placed outside.
how to Insert into detail table section in Hierarchical Radgrid by clicking the button placed outside.
13 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 30 Jul 2010, 06:28 AM
Hello,
I am not sure of your requirement. If you are trying to access the DetailTable, then the following help articles will help you in this.
Traversing detail tables/items in Telerik RadGrid
Distinguish grid rows in hierarchy on ItemCreated/ItemDataBound
Could you elaborate your scenario if this doesn't help you?
Thanks,
Princy.
I am not sure of your requirement. If you are trying to access the DetailTable, then the following help articles will help you in this.
Traversing detail tables/items in Telerik RadGrid
Distinguish grid rows in hierarchy on ItemCreated/ItemDataBound
Could you elaborate your scenario if this doesn't help you?
Thanks,
Princy.
0
zel
Top achievements
Rank 1
answered on 08 Sep 2010, 07:39 AM
Hi,
I have the same problem with Tan. The radgrid has 3 hierarchies, and each hierarchy has a custom command item for Add,Edit and Delete. My problem is, how to handle the event of linkbutton inside the detail table (GridTableView Name Detail2 and 3)?
Below is my aspx
I would really appreciate for any quick response.
Thanks,
Lyzel
I have the same problem with Tan. The radgrid has 3 hierarchies, and each hierarchy has a custom command item for Add,Edit and Delete. My problem is, how to handle the event of linkbutton inside the detail table (GridTableView Name Detail2 and 3)?
Below is my aspx
<rad:RadGrid runat="server" ID="gridCPDiag" AllowPaging="True" AllowSorting="True" PageSize="15" AutoGenerateColumns="False" GridLines="None" BorderStyle="None" Skin="Outlook" OnNeedDataSource="gridCPDiag_NeedDataSource" OnDetailTableDataBind="gridCPDiag_DetailTableDataBind" OnInsertCommand="gridCPDiag_InsertCommand" OnUpdateCommand="gridCPDiag_UpdateCommand" OnDeleteCommand="gridCPDiag_DeleteCommand" OnPreRender="gridCPDiag_PreRender" OnItemDataBound="gridCPDiag_ItemDataBound"> <MasterTableView DataKeyNames="cpd_id" CommandItemDisplay="Top" EditMode="InPlace" Width="100%"> <CommandItemTemplate> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:60%"> <div style="padding:3px 4px 3px 4px"> <table border="0" cellpadding="1" cellspacing="1"> <tr style="font: normal 11px tahoma, Verdana, Helvetica, Sans-serif;vertical-align:middle"> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnAdd" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="InitInsert" Visible='<%# !gridCPDiag.MasterTableView.IsItemInserted && gridCPDiag.EditIndexes.Count == 0 %>'><img style="border:0px" alt="" src="../images/addemail.gif" /> Add</asp:LinkButton> <asp:LinkButton ID="lnkPerformInsert" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="PerformInsert" Visible='<%# gridCPDiag.MasterTableView.IsItemInserted %>'><img style="border:0px" alt="" src="../images/save.gif" /> Save</asp:LinkButton> </td> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnEditSelected" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="EditSelected" Visible='<%# !gridCPDiag.MasterTableView.IsItemInserted && gridCPDiag.EditIndexes.Count == 0 %>'><img style="border:0px" alt="" src="../images/edit.gif" /> Edit</asp:LinkButton> <asp:LinkButton ID="btnUpdateEdited" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="Update" Visible='<%# gridCPDiag.EditIndexes.Count > 0 %>'><img style="border:0px" alt="" src="../images/save.gif" /> Save</asp:LinkButton> <asp:LinkButton ID="btnCancel" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="CancelAll" Visible='<%# gridCPDiag.EditIndexes.Count > 0 || gridCPDiag.MasterTableView.IsItemInserted %>' CausesValidation="false"><img style="border:0px" alt="" src="../images/cancel.gif" /> Cancel</asp:LinkButton> </td> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnDelete" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="Delete" Visible='<%# !gridCPDiag.MasterTableView.IsItemInserted && gridCPDiag.EditIndexes.Count == 0 %>' OnClientClick="javascript:return confirm('Are you sure you want to delete this Clinical Pathway?')" ><img style="border:0px" alt="" src="../images/delete.gif" /> Delete</asp:LinkButton> </td> </tr> </table> </div> </td> </tr> </table> </CommandItemTemplate> <DetailTables> <rad:GridTableView Name="Detail2" DataKeyNames="cp_id" DataMember="visit" CommandItemDisplay="Top" EditMode="InPlace" Width="100%"> <CommandItemTemplate> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:60%"> <div style="padding:3px 4px 3px 4px"> <table border="0" cellpadding="1" cellspacing="1"> <tr style="font: normal 11px tahoma, Verdana, Helvetica, Sans-serif;vertical-align:middle"> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnAdd" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="InitInsert" Visible="false"><img style="border:0px" alt="" src="../images/addemail.gif" /> Add</asp:LinkButton> <asp:LinkButton ID="lnkPerformInsert" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="PerformInsert" Visible="false"><img style="border:0px" alt="" src="../images/save.gif" /> Save</asp:LinkButton> </td> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnEditSelected" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="EditSelected" Visible="false"><img style="border:0px" alt="" src="../images/edit.gif" /> Edit</asp:LinkButton> <asp:LinkButton ID="btnUpdateEdited" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="Update" Visible="false"><img style="border:0px" alt="" src="../images/save.gif" /> Save</asp:LinkButton> <asp:LinkButton ID="btnCancel" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="CancelAll" Visible="false" CausesValidation="false"><img style="border:0px" alt="" src="../images/cancel.gif" /> Cancel</asp:LinkButton> </td> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnDelete" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="Delete" Visible="false" OnClientClick="javascript:return confirm('Are you sure you want to delete this Clinical Pathway Instruction?')" ><img style="border:0px" alt="" src="../images/delete.gif" /> Delete</asp:LinkButton> </td> </tr> </table> </div> </td> </tr> </table> </CommandItemTemplate> <DetailTables> <rad:GridTableView Name="Detail3" DataKeyNames="cpi_id" DataMember="instruction" CommandItemDisplay="Top" EditMode="InPlace" Width="100%"> <CommandItemTemplate> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:60%"> <div style="padding:3px 4px 3px 4px"> <table border="0" cellpadding="1" cellspacing="1"> <tr style="font: normal 11px tahoma, Verdana, Helvetica, Sans-serif;vertical-align:middle"> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnAdd" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="InitInsert" ><img style="border:0px" alt="" src="../images/addemail.gif" /> Add</asp:LinkButton> <asp:LinkButton ID="lnkPerformInsert" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="PerformInsert"><img style="border:0px" alt="" src="../images/save.gif" /> Save</asp:LinkButton> </td> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnEditSelected" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="EditSelected" ><img style="border:0px" alt="" src="../images/edit.gif" /> Edit</asp:LinkButton> <asp:LinkButton ID="btnUpdateEdited" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="Update"><img style="border:0px" alt="" src="../images/save.gif" /> Save</asp:LinkButton> <asp:LinkButton ID="btnCancel" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="CancelAll" CausesValidation="false"><img style="border:0px" alt="" src="../images/cancel.gif" /> Cancel</asp:LinkButton> </td> <td> <div class="toolbarIconDivider">|</div> </td> <td> <asp:LinkButton ID="btnDelete" CssClass="mu" onmouseover="this.className='mo'" onmouseout="this.className='mu'" runat="server" CommandName="Delete" OnClientClick="javascript:return confirm('Are you sure you want to delete this Clinical Pathway Instruction?')" ><img style="border:0px" alt="" src="../images/delete.gif" /> Delete</asp:LinkButton> </td> </tr> </table> </div> </td> </tr> </table> </CommandItemTemplate> <Columns> <rad:GridBoundColumn DataField="cpi_id" HeaderText="CPI_ID" UniqueName="CPI_ID" Visible="false"></rad:GridBoundColumn> <rad:GridBoundColumn DataField="instructions" HeaderText="instructions" UniqueName="instructions" Visible="false"></rad:GridBoundColumn> <rad:GridTemplateColumn HeaderText="Instructions" UniqueName="instructions" DataField="instructions"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "instructions")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbIns" runat="server" Text='<%# Bind( "instructions") %>' width="100%" TabIndex="1" TextMode="MultiLine" Rows="4"></asp:TextBox> <asp:RequiredFieldValidator ID="descValidator" Runat="server" Display="Dynamic" ControlToValidate="tbIns" ErrorMessage="* Required Field"> </asp:RequiredFieldValidator> </EditItemTemplate> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="Sort Order" UniqueName="sortorder" DataField="sortorder"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "sortorder")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbSortOrder" runat="server" Text='<%# Bind( "sortorder") %>' width="30px" TabIndex="2"></asp:TextBox> <asp:RequiredFieldValidator ID="descValidator2" Runat="server" Display="Dynamic" ControlToValidate="tbSortOrder" ErrorMessage="* Required Field"> </asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Display="Dynamic" ControlToValidate="tbSortOrder" ErrorMessage="Please enter a valid sort order number." ValidationExpression="^\d+$"></asp:RegularExpressionValidator> </EditItemTemplate> </rad:GridTemplateColumn> </Columns> </rad:GridTableView> </DetailTables> <Columns> <rad:GridBoundColumn DataField="cp_id" HeaderText="CP_ID" UniqueName="CP_ID" Visible="false"></rad:GridBoundColumn> <rad:GridBoundColumn DataField="VisitFrequency" HeaderText="VisitFrequency" UniqueName="VisitFrequency" Visible="false"></rad:GridBoundColumn> <rad:GridTemplateColumn UniqueName="CheckBoxTemplateColumn"> <HeaderTemplate> <asp:CheckBox id="headerChkbox" AutoPostBack="True" runat="server"></asp:CheckBox> </HeaderTemplate> <ItemTemplate> <asp:CheckBox id="chkSelect" AutoPostBack="True" runat="server"></asp:CheckBox> </ItemTemplate> <HeaderStyle Width="2%" /> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="Visit Frequency" UniqueName="VisitFrequency" DataField="VisitFrequency"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "VisitFrequency")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbVisit" runat="server" Text='<%# Bind( "VisitFrequency") %>' width="100%" TabIndex="1"></asp:TextBox> <asp:RequiredFieldValidator ID="descValidator" Runat="server" Display="Dynamic" ControlToValidate="tbVisit" ErrorMessage="* Required Field"> </asp:RequiredFieldValidator> </EditItemTemplate> <HeaderStyle Width="80%" /> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="Sort Order" UniqueName="Sortorder" DataField="Sortorder"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Sortorder")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbVisitSortOrder" runat="server" Text='<%# Bind( "Sortorder") %>' width="30px" TabIndex="2"></asp:TextBox> <asp:RequiredFieldValidator ID="descValidator2" Runat="server" Display="Dynamic" ControlToValidate="tbVisitSortOrder" ErrorMessage="* Required Field" > </asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" Display="Dynamic" ControlToValidate="tbVisitSortOrder" ErrorMessage="Please enter a valid sort order number." ValidationExpression="^\d+$"></asp:RegularExpressionValidator> </EditItemTemplate> </rad:GridTemplateColumn> </Columns> </rad:GridTableView> </DetailTables> <Columns> <rad:GridBoundColumn DataField="cpd_id" HeaderText="CPD_ID" UniqueName="CPD_ID" Visible="False"></rad:GridBoundColumn> <rad:GridBoundColumn DataField="short_desc" HeaderText="short desc" UniqueName="short_desc" Visible="False"></rad:GridBoundColumn> <rad:GridTemplateColumn HeaderText="Diagnosis" UniqueName="short_desc" DataField="short_desc"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "short_desc")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbDiag" runat="server" Text='<%# Bind( "short_desc") %>' Width="95%" TabIndex="1"></asp:TextBox> <asp:RequiredFieldValidator ID="descValidator" Runat="server" Display="Dynamic" ControlToValidate="tbDiag" ErrorMessage="* Required field"> </asp:RequiredFieldValidator> </EditItemTemplate> <HeaderStyle Width="20%" /> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="Description" UniqueName="long_desc" DataField="long_desc"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "long_desc")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbDesc" runat="server" Text='<%# Bind( "long_desc") %>' Width="95%" TabIndex="2"></asp:TextBox> </EditItemTemplate> <HeaderStyle Width="80%" /> </rad:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings EnablePostBackOnRowClick="false"> <Selecting AllowRowSelect="True"/> </ClientSettings> </rad:RadGrid> I would really appreciate for any quick response.
Thanks,
Lyzel
0
Princy
Top achievements
Rank 2
answered on 08 Sep 2010, 10:19 AM
Hello Lyzel,
The RadGrid.ItemCommand event will be fired when a custom command bubbles from the CommandItem, which lets you define custom functionality that can be executed in the ItemCommand handler. And you can check with the name of OwnerTableView to identify the operaion for MasterTable/DetailTables.
C#:
Thanks,
Princy.
The RadGrid.ItemCommand event will be fired when a custom command bubbles from the CommandItem, which lets you define custom functionality that can be executed in the ItemCommand handler. And you can check with the name of OwnerTableView to identify the operaion for MasterTable/DetailTables.
C#:
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == "InitInsert" && e.Item.OwnerTableView.Name == "Master") //for Add Button in MasterTableView { } if (e.CommandName == "InitInsert" && e.Item.OwnerTableView.Name == "Detail2") //for Add Button in Detail2 { } if (e.CommandName == "InitInsert" && e.Item.OwnerTableView.Name == "Detail3") //for Add Button in Detail3 { } }Thanks,
Princy.
0
zel
Top achievements
Rank 1
answered on 09 Sep 2010, 10:00 AM
Hi Princy,
Thanks for your reply. But I have another problem, how to show/hide some link buttons after clicking the Add or Edit? Even though i set the property of link button to true, it will not appear in the command item.
Kindly check my code below.
Thanks!
Lyzel
Thanks for your reply. But I have another problem, how to show/hide some link buttons after clicking the Add or Edit? Even though i set the property of link button to true, it will not appear in the command item.
Kindly check my code below.
protected void gridCPDiag_ItemCommand(object sender, GridCommandEventArgs e) { if (e.Item.OwnerTableView.Name == "Detail2") { if (e.Item is GridCommandItem) { GridCommandItem commandItem = e.Item as GridCommandItem; LinkButton btnAdd = commandItem.FindControl("btnAdd") as LinkButton; LinkButton lnkPerformInsert = commandItem.FindControl("lnkPerformInsert") as LinkButton; LinkButton btnEditSelected = commandItem.FindControl("btnEditSelected") as LinkButton; LinkButton btnUpdateEdited = commandItem.FindControl("btnUpdateEdited") as LinkButton; LinkButton btnCancel = commandItem.FindControl("btnCancel") as LinkButton; LinkButton btnDelete = commandItem.FindControl("btnDelete") as LinkButton; btnAdd.Visible = false; btnEditSelected.Visible = false; btnDelete.Visible = false; if (e.CommandName == "InitInsert") { lnkPerformInsert.Visible = true; btnCancel.Visible = true; } if (e.CommandName == "EditSelected") { btnUpdateEdited.Visible = true; btnCancel.Visible = true; } } } }Thanks!
Lyzel
0
Princy
Top achievements
Rank 2
answered on 09 Sep 2010, 12:22 PM
Hello Lyzel,
You can try this in ItemDataBound event. In ItemCommand event you can identify which operation is performing and store the opeartion name in a hiddenField .Then in ItemDataBound event based on this HiddenField value, hide the corresponding controls. Check out the sample code.
C#:
Thanks,
Princy.
You can try this in ItemDataBound event. In ItemCommand event you can identify which operation is performing and store the opeartion name in a hiddenField .Then in ItemDataBound event based on this HiddenField value, hide the corresponding controls. Check out the sample code.
C#:
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) { if(e.Item.OwnerTableView.Name == "Detail2") { if (e.CommandName == "InitInsert") { HiddenField1.Value = "InitInsert"; } else if(e.CommandName == "EditSelected") { HiddenField1.Value = "EditSelected"; } . . . . . .. . . . . . . . . . . . . . . . } protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridCommandItem && e.Item.OwnerTableView.Name == "Detail2") { GridCommandItem commandItem = (GridCommandItem)e.Item; LinkButton lnkPerformInsert = commandItem.FindControl("lnkPerformInsert") as LinkButton; LinkButton btnEditSelected = commandItem.FindControl("btnEditSelected") as LinkButton; LinkButton btnUpdateEdited = commandItem.FindControl("btnUpdateEdited") as LinkButton; LinkButton btnCancel = commandItem.FindControl("btnCancel") as LinkButton; LinkButton btnDelete = commandItem.FindControl("btnDelete") as LinkButton; if (HiddenField1.Value == "InitInsert") { lnkPerformInsert.Visible = true; btnEditSelected.Visible = false; btnUpdateEdited.Visible = false; btnCancel.Visible = true; btnDelete.Visible = false; } else if (HiddenField1.Value == "EditSelected") { lnkPerformInsert.Visible = false; btnEditSelected.Visible = false; btnUpdateEdited.Visible = true; btnCancel.Visible = true; btnDelete.Visible = false; } else { lnkPerformInsert.Visible = true; btnEditSelected.Visible = true; btnUpdateEdited.Visible = true; btnCancel.Visible = true; btnDelete.Visible = true; } } }Thanks,
Princy.
0
zel
Top achievements
Rank 1
answered on 13 Sep 2010, 09:49 AM
Hi Princy,
I really appreciate your quick response. The sample code you provided is working. But, I have another problems
Thanks a lot Princy!
Lyzel
I really appreciate your quick response. The sample code you provided is working. But, I have another problems
- how to find the edit itemtemplate control inside the detail table? I want to show the tbVisitSortOrder textbox when clicking the edit link button.
<Columns> <rad:GridBoundColumn DataField="cp_id" HeaderText="CP_ID" UniqueName="CP_ID" Visible="false"></rad:GridBoundColumn> <rad:GridBoundColumn DataField="VisitFrequency" HeaderText="VisitFrequency" UniqueName="VisitFrequency" Visible="false"></rad:GridBoundColumn> <rad:GridTemplateColumn UniqueName="CheckBoxTemplateColumn"> <HeaderTemplate> <asp:CheckBox id="headerChkbox" OnCheckedChanged="ToggleSelectedState" AutoPostBack="True" runat="server"></asp:CheckBox> </HeaderTemplate> <ItemTemplate> <asp:CheckBox id="chkSelect" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True" runat="server"></asp:CheckBox> </ItemTemplate> <HeaderStyle Width="2%" /> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="Visit Frequency" UniqueName="VisitFrequency" DataField="VisitFrequency"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "VisitFrequency")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbVisit" runat="server" Text='<%# Bind( "VisitFrequency") %>' width="100%" TabIndex="1" ></asp:TextBox> <asp:RequiredFieldValidator ID="descValidator" Runat="server" Display="Dynamic" ControlToValidate="tbVisit" ErrorMessage="* Required Field"> </asp:RequiredFieldValidator> </EditItemTemplate> <HeaderStyle Width="80%" /> </rad:GridTemplateColumn> <rad:GridTemplateColumn HeaderText="Sort Order" UniqueName="Sortorder" DataField="Sortorder"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Sortorder")%> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="tbVisitSortOrder" runat="server" Text='<%# Bind( "Sortorder") %>' width="30px" TabIndex="2" Visible="false"></asp:TextBox> <asp:RequiredFieldValidator ID="descValidator2" Runat="server" Display="Dynamic" ControlToValidate="tbVisitSortOrder" ErrorMessage="* Required Field" > </asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" Display="Dynamic" ControlToValidate="tbVisitSortOrder" ErrorMessage="Please enter a valid sort order number." ValidationExpression="^\d+$"></asp:RegularExpressionValidator> </EditItemTemplate> </rad:GridTemplateColumn> </Columns>- Upon clicking the cancel button from detail table, the detail grid and parent grid will collapsed. how to save the state of parent table as expanded?
- how to select the row of newly added data or currently edited data in detail table?
- how to rebind the Detail3 detail table after adding new data? in master_itemcommand event, i added the code to insert the new data. please check my code below.
if (e.CommandName == "PerformInsert")
{
CommandState = "performinsert";
GridEditableItem insertedItem = e.Item.OwnerTableView.GetInsertItem();
if (insertedItem.IsInEditMode)
{
InsertVFIns(insertedItem);
e.Item.OwnerTableView.Rebind();
}
}
private void InsertVFIns(GridEditableItem insertItem)
{
TextBox txtInstr = (TextBox)insertItem.FindControl("tbIns");
TextBox txtSortOrder = (TextBox)insertItem.FindControl("tbSortOrder");
ClinicalPathway cp = new ClinicalPathway(AgencyId, BranchId);
char mode = 'i';
cp.UpdateVisitInstruction(-1, SelectedCPVisitFreq, txtInstr.Text, Convert.ToInt32(txtSortOrder.Text), mode);
insertItem.Edit = false;
}
The data was successfully added to the database, but an error will occur "Insert item is available only when grid is in insert mode."
protected void Master_InsertCommand(object source, Telerik.WebControls.GridCommandEventArgs e) {
GridEditableItem insertedItem =
e.Item.OwnerTableView.GetInsertItem();
if (insertedItem.IsInEditMode) { cpd_id = InsertCPDiag(insertedItem); gridCPDiag.Rebind(); } }Thanks a lot Princy!
Lyzel
0
zel
Top achievements
Rank 1
answered on 21 Sep 2010, 03:48 AM
Telerik Support,
Please help me with my last problem. I am not getting any answer from your team anymore.
I would really appreciate for any response.
Thanks,
Lyzel
Please help me with my last problem. I am not getting any answer from your team anymore.
I would really appreciate for any response.
Thanks,
Lyzel
0
Hello Zel,
Straight to your questions:
I hope this helps.
Greetings,
Mira
the Telerik team
Straight to your questions:
- Please take a look at the Referencing controls in grid row/edit form help topic to see how to find the desired control.
- You can use the approach from the Retain expanded/selected state in hierarchy on rebind code library.
- Please examine the Select Last Inserted Row in the RadGrid with both Paging and Sorting enabled code library to see how this functionality can be achieved.
- Please check the Inserting values in-place and EditForms help topic to learn the proper ways to insert grid rows with InPlace and EditForms edit mode.
I hope this helps.
Greetings,
Mira
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
zel
Top achievements
Rank 1
answered on 24 Sep 2010, 10:31 AM
Hello Everyone,
I already tried the code in Retain expanded/selected state in hierarchy on rebind. But I have a problem, every time I click on edit command item in detail 3 the other command item for detail 2 and master table also changes.
Please see the attached screenshots Before and After clicking the edit command item in detail 3.
Below is my C# code for customizing the visibility of command items.
protected void gridCPDiag_ItemDataBound(object sender, Telerik.WebControls.GridItemEventArgs e) { if (e.Item is GridCommandItem && e.Item.OwnerTableView.Name == "Detail2") { GridCommandItem visitcommandItem = (GridCommandItem)e.Item; LinkButton visitbtnAdd = (LinkButton)visitcommandItem.FindControl("btnAdd"); LinkButton visitlnkPerformInsert = (LinkButton)visitcommandItem.FindControl("lnkPerformInsert"); LinkButton visitbtnEditSelected = (LinkButton)visitcommandItem.FindControl("btnEditSelected"); LinkButton visitbtnUpdateEdited = (LinkButton)visitcommandItem.FindControl("btnUpdateEdited"); LinkButton visitbtnCancel = (LinkButton)visitcommandItem.FindControl("btnCancel"); LinkButton visitbtnDelete = (LinkButton)visitcommandItem.FindControl("btnDelete"); if (CommandState == "initinsert" || CommandState == "editselected") { visitbtnAdd.Visible = false; visitbtnEditSelected.Visible = false; visitbtnDelete.Visible = false; visitbtnCancel.Visible = true; } if (CommandState == "initinsert") { visitlnkPerformInsert.Visible = true; } if (CommandState == "editselected") { visitbtnUpdateEdited.Visible = true; } if (CommandState == "performinsert" || CommandState == "update" || CommandState == "cancelall") { visitbtnAdd.Visible = true; visitbtnEditSelected.Visible = true; visitbtnDelete.Visible = true; visitlnkPerformInsert.Visible = false; visitbtnUpdateEdited.Visible = false; visitbtnCancel.Visible = false; } } if (e.Item is GridCommandItem && e.Item.OwnerTableView.Name == "Detail3") { GridCommandItem inscommandItem = (GridCommandItem)e.Item; LinkButton insbtnAdd = (LinkButton)inscommandItem.FindControl("btnAdd"); LinkButton inslnkPerformInsert = (LinkButton)inscommandItem.FindControl("lnkPerformInsert"); LinkButton insbtnEditSelected = (LinkButton)inscommandItem.FindControl("btnEditSelected"); LinkButton insbtnUpdateEdited = (LinkButton)inscommandItem.FindControl("btnUpdateEdited"); LinkButton insbtnCancel = (LinkButton)inscommandItem.FindControl("btnCancel"); LinkButton insbtnDelete = (LinkButton)inscommandItem.FindControl("btnDelete"); if (CommandState == "initinsert" || CommandState == "editselected") { insbtnAdd.Visible = false; insbtnEditSelected.Visible = false; insbtnDelete.Visible = false; insbtnCancel.Visible = true; } if (CommandState == "initinsert") { inslnkPerformInsert.Visible = true; } if (CommandState == "editselected") { insbtnUpdateEdited.Visible = true; } if (CommandState == "performinsert" || CommandState == "update" || CommandState == "cancelall") { insbtnAdd.Visible = true; insbtnEditSelected.Visible = true; insbtnDelete.Visible = true; inslnkPerformInsert.Visible = false; insbtnCancel.Visible = false; } } }
Please help.
Thanks!
Lyzel
0
zel
Top achievements
Rank 1
answered on 27 Sep 2010, 03:53 AM
Hello Everyone!
Please help me with my problem that i posted last 2 days ago. I really have no idea, why is the command items for master table and detail table 2 changes, every time i click on edit in detail table 3.
Below is the code that I have added to retain expanded/selected in hierarchy.
Thanks!
Zel
Please help me with my problem that i posted last 2 days ago. I really have no idea, why is the command items for master table and detail table 2 changes, every time i click on edit in detail table 3.
Below is the code that I have added to retain expanded/selected in hierarchy.
private Hashtable _ordersExpandedState;private Hashtable _selectedState;protected void Page_Load(object sender, EventArgs e){ Ajax.Utility.RegisterTypeForAjax(typeof(ClinicalPathwaySetup)); if (!IsPostBack) { this._ordersExpandedState = null; this.Session["_ordersExpandedState"] = null; } } protected void gridCPDiag_Databound(object sender, EventArgs e) { //Expand all items using our custom storage string[] indexes = new string[this.ExpandedStates.Keys.Count]; this.ExpandedStates.Keys.CopyTo(indexes, 0); ArrayList arr = new ArrayList(indexes); //Sort so we can guarantee that a parent item is expanded before any of //its children arr.Sort(); foreach (string key in arr) { bool value = (bool)this.ExpandedStates[key]; if (value) { gridCPDiag.Items[key].Expanded = true; } } //Select all items using our custom storage indexes = new string[this.SelectedStates.Keys.Count]; this.SelectedStates.Keys.CopyTo(indexes, 0); arr = new ArrayList(indexes); //Sort to ensure that a parent item is selected before any of its children arr.Sort(); foreach (string key in arr) { bool value = (bool)this.SelectedStates[key]; if (value) { gridCPDiag.Items[key].Selected = true; } } }//Save/load expanded states Hash from the session //this can also be implemented in the ViewState private Hashtable ExpandedStates { get { if (this._ordersExpandedState == null) { _ordersExpandedState = this.Session["_ordersExpandedState"] as Hashtable; if (_ordersExpandedState == null) { _ordersExpandedState = new Hashtable(); this.Session["_ordersExpandedState"] = _ordersExpandedState; } } return this._ordersExpandedState; } } //Clear the state for all expanded children if a parent item is collapsed private void ClearExpandedChildren(string parentHierarchicalIndex) { string[] indexes = new string[this.ExpandedStates.Keys.Count]; this.ExpandedStates.Keys.CopyTo(indexes, 0); foreach (string index in indexes) { //all indexes of child items if (index.StartsWith(parentHierarchicalIndex + "_") || index.StartsWith(parentHierarchicalIndex + ":")) { this.ExpandedStates.Remove(index); } } } //Save/load selected states Hash from the session //this can also be implemented in the ViewState private Hashtable SelectedStates { get { if (this._selectedState == null) { _selectedState = this.Session["_selectedState"] as Hashtable; if (_selectedState == null) { _selectedState = new Hashtable(); this.Session["_selectedState"] = _selectedState; } } return this._selectedState; } }Thanks!
Zel
0
Hello Zel,
I looked through your code and I cannot see an obvious reason for the described issue.
Please send us a small working project, demonstrating your full setup and showing the unwanted behavior.
We will debug it locally and get back to you.
Thank you in advance for the cooperation.
Kind regards,
Mira
the Telerik team
I looked through your code and I cannot see an obvious reason for the described issue.
Please send us a small working project, demonstrating your full setup and showing the unwanted behavior.
We will debug it locally and get back to you.
Thank you in advance for the cooperation.
Kind regards,
Mira
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
zel
Top achievements
Rank 1
answered on 29 Sep 2010, 09:14 AM
Hi Mira,
Please disregard my problem. I already figured it out why are the command items in master table changes, every time i click on edit in any detail table.
I forgot to mention that I have set the visibility of command items in master table in aspx.
Thanks for replying.
Zel
Please disregard my problem. I already figured it out why are the command items in master table changes, every time i click on edit in any detail table.
I forgot to mention that I have set the visibility of command items in master table in aspx.
Thanks for replying.
Zel
0
Bryan
Top achievements
Rank 2
answered on 12 Mar 2013, 12:45 PM
*nevermind, I created a new thread.