I have a radgrid with a MatersTableView housing 2 GridTableViews (not nested).
I have 2 issues I am trying to understand
NOTE: all ItemCommands work when in non hierarchical grids.
Below is my code
Thanks in advance
I have 2 issues I am trying to understand
- When I click on the "expand", the grid expands properly and the GridTableViews populate properly. However, when I click on "Collapse" subsequently, the row does not collapse.
- Each GridTable has image buttons in them. When clicked, the OnItemCommand is not fired, and the Grid collapses. I do not that when I click "Expand" the OnItemCommand is fired with "ExpandCollapse" as the e.CommandName, and e.CommandArgument as String.Empty.
NOTE: all ItemCommands work when in non hierarchical grids.
- How do I collapse and expanded row?
- How do I capture a ItemCommand in the MasterTableView and GridTableViews?
Below is my code
Thanks in advance
<telerik:RadAjaxManagerProxy ID="RadAM_CasePaymentSubmissions" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadAM_CasePaymentSubmissions"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="paymentSubmissionGrid" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManagerProxy> <telerik:RadGrid ID="paymentSubmissionGrid" OnPreRender="paymentSubmissionGrid_PreRender" EnableViewState="true" ShowStatusBar="true" Skin="Office2007" OnDetailTableDataBind="paymentSubmissionGrid_DetailTableDataBind" OnNeedDataSource="paymentSubmissionGrid_NeedDataSource" OnItemDataBound="paymentSubmissionGrid_OnItemDatabound" OnItemCommand="paymentSubmissionGrid_OnItemCommand" runat="server" AutoGenerateColumns="False" PageSize="7" AllowSorting="True" AllowPaging="True" GridLines="None"> <PagerStyle Mode="NumericPages"></PagerStyle> <MasterTableView Name="HcfaSubmissions" DataKeyNames="PaymentSubmissionId"> <DetailTables> <telerik:GridTableView DataKeyNames="PaymentSubmissionId" Name="Resubmit" Width="100%" runat="server" ItemStyle-BackColor="Ivory" AlternatingItemStyle-BackColor="Ivory"> <Columns> <telerik:GridTemplateColumn AllowFiltering="false" DataType="System.String" SortExpression="PaymentSubmissionId" HeaderText="Submission Id" HeaderButtonType="TextButton" DataField="PaymentSubmissionId" UniqueName="RePaymentSubmissionId"> <HeaderStyle HorizontalAlign="Left" Wrap="False" Width="50px" /> <ItemStyle Width="50px" Wrap="false" /> <ItemTemplate> <asp:Literal ID="ReSubmissionIdLiteral" runat="server"></asp:Literal> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn SortExpression="SubmissionDate" HeaderText="Date Resubmitted" ItemStyle-Width="100px" DataType="System.DateTime" HeaderButtonType="TextButton" DataField="SubmissionDate" UniqueName="ReSubmissionDate" DataFormatString="{0:MM/dd/yyyy}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Status" HeaderText="Status" HeaderButtonType="TextButton" ItemStyle-Width="500px" DataField="Status" UniqueName="ReStatus"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn> <HeaderStyle HorizontalAlign="Left" Wrap="False" /> <ItemStyle Width="40px" Wrap="false" HorizontalAlign="Center" /> <ItemTemplate> <div style="float: left;"> <asp:ImageButton ID="viewResubmitHCFA" AlternateText="View" runat="server" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"PaymentSubmissionId") %>' ImageAlign="Middle" ImageUrl="~/images/pdf.jpg" ToolTip="View resubmission" /> </div> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </telerik:GridTableView> <telerik:GridTableView DataKeyNames="BillSubmissionId" Name="Procedures" Width="100%" runat="server" ItemStyle-BackColor="AntiqueWhite" AlternatingItemStyle-BackColor="AntiqueWhite"> <Columns> <telerik:GridBoundColumn UniqueName="CaseProviderDetailId" DataField="CaseProviderDetails.CaseProviderDetailId" HeaderText="Bill ID" ItemStyle-Width="40px" ItemStyle-HorizontalAlign="Left" DataType="System.Int32" /> <telerik:GridTemplateColumn AllowFiltering="false" UniqueName="CaseProviderDetails.CPTCode.Code" DataField="CaseProviderDetails.CPTCode.Code" DataType="System.String" HeaderText="CPT Code"> <HeaderStyle HorizontalAlign="Left" Wrap="False" Width="500px" /> <ItemStyle Width="500px" Wrap="false" /> <ItemTemplate> <asp:Literal ID="cptLiteral" runat="server"></asp:Literal> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn UniqueName="CaseProviderDetailsDOS" DataField="CaseProviderDetails.DOS" HeaderText="DOS" ItemStyle-Width="75px" ItemStyle-HorizontalAlign="Left" DataType="System.DateTime" DataFormatString="{0:MM/dd/yyyy}" /> <telerik:GridTemplateColumn AllowFiltering="false" UniqueName="CaseProviderDetailsReceivable" DataField="CaseProviderDetails.Receivable" DataType="System.Decimal" HeaderText="Bill Amount"> <HeaderStyle HorizontalAlign="Left" Wrap="False" Width="75px" /> <ItemStyle Width="75px" Wrap="false" /> <ItemTemplate> <asp:Literal ID="ReceivableLiteral" runat="server"></asp:Literal> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn AllowFiltering="false" UniqueName="StatusName" DataType="System.String" HeaderText="Status"> <HeaderStyle HorizontalAlign="Left" Wrap="False" Width="110px" /> <ItemStyle Width="75px" Wrap="false" /> <ItemTemplate> <asp:Literal ID="StatusLiteral" runat="server"></asp:Literal> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <HeaderStyle HorizontalAlign="Left" Wrap="False" /> <ItemStyle Width="40px" Wrap="false" HorizontalAlign="Center" /> <ItemTemplate> <div style="float: left;"> <asp:ImageButton ID="editDetails" AlternateText="Edit" runat="server" ImageAlign="Middle" ImageUrl="~/images/EditInformationHS.png" ToolTip="Edit Bill" /> </div> <div style="float: right;"> <asp:ImageButton ID="viewDetails" AlternateText="View" runat="server" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"CaseProviderDetails.CaseProviderDetailId") %>' CommandName="viewDetails" ImageAlign="Middle" ImageUrl="~/images/Search.gif" ToolTip="View Details" /> </div> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridTemplateColumn AllowFiltering="false" DataType="System.String" SortExpression="PaymentSubmissionId" HeaderText="Submission Id" HeaderButtonType="TextButton" DataField="PaymentSubmissionId" UniqueName="PaymentSubmissionId"> <HeaderStyle HorizontalAlign="Left" Wrap="False" Width="110px" /> <ItemStyle Width="50px" Wrap="false" /> <ItemTemplate> <asp:Literal ID="SubmissionIdLiteral" runat="server"></asp:Literal> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn SortExpression="SubmissionDate" HeaderText="Submission Date" ItemStyle-Width="100px" DataType="System.DateTime" HeaderButtonType="TextButton" DataField="SubmissionDate" UniqueName="SubmissionDate" DataFormatString="{0:MM/dd/yyyy}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Status" HeaderText="Status" HeaderButtonType="TextButton" ItemStyle-Width="500px" DataField="Status" UniqueName="Status"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn> <HeaderStyle HorizontalAlign="Left" Wrap="False" /> <ItemStyle Width="40px" Wrap="false" HorizontalAlign="Center" /> <ItemTemplate> <div style="float: left;"> <asp:ImageButton ID="viewHCFA" AlternateText="View" runat="server" ImageAlign="Middle" ImageUrl="~/images/pdf.jpg" ToolTip="View HCFA" /> </div> <div style="float: right;"> <asp:ImageButton ID="resubmit" AlternateText="Resubmit" runat="server" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"PaymentSubmissionId") %>' CommandName="resubmit" ImageAlign="Middle" ImageUrl="~/images/resubmit.png" ToolTip="Resubmit" /> </div> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid>
private void GetPaymentSubmission(Int32 caseId, Boolean bind)
{
List<PaymentSubmission> paymentSubmissions = new List<PaymentSubmission>();
paymentSubmissions = PaymentSubmission.GetByCaseId(caseId);
paymentSubmissionGrid.DataSource = paymentSubmissions;
if (bind)
paymentSubmissionGrid.DataBind();
}
protected void paymentSubmissionGrid_DetailTableDataBind(object source, GridDetailTableDataBindEventArgs e)
{
List<PaymentSubmission> paymentSubmissions;
Int32 paymentSubmissionId;
GridDataItem dataItem;
switch (e.DetailTableView.Name)
{
case "Procedures":
dataItem = (GridDataItem)e.DetailTableView.ParentItem;
paymentSubmissionId = Int32.Parse(dataItem.GetDataKeyValue("PaymentSubmissionId").ToString());
paymentSubmissions = new List<PaymentSubmission>();
paymentSubmissions = PaymentSubmission.GetByCaseId(3635);
List<BillSubmission> billsDetails = (paymentSubmissions.Where(p => p.PaymentSubmissionId == paymentSubmissionId).FirstOrDefault())
.BillSubmission.ToList();
e.DetailTableView.DataSource = billsDetails;
break;
case "Resubmit":
dataItem = (GridDataItem)e.DetailTableView.ParentItem;
paymentSubmissionId = Int32.Parse(dataItem.GetDataKeyValue("PaymentSubmissionId").ToString());
paymentSubmissions = new List<PaymentSubmission>();
paymentSubmissions = PaymentSubmission.GetByCaseId(3635);
List<PaymentSubmission> resubmitSubmissions = (paymentSubmissions
.Where(p => p.PaymentSubmissionId == paymentSubmissionId)
.FirstOrDefault()).Children.ToList();
e.DetailTableView.DataSource = resubmitSubmissions;
break;
}
}
protected void paymentSubmissionGrid_OnItemDatabound(object sender, GridItemEventArgs e)
{
if ((e.Item is GridDataItem) && (e.Item.OwnerTableView.Name == "Procedures"))
{
BillSubmission lineItem = e.Item.DataItem as BillSubmission;
if (!(e.Item.FindControl("ReceivableLiteral") == null))
{
Literal ReceivableLiteral = e.Item.FindControl("ReceivableLiteral") as Literal;
ReceivableLiteral.Text = String.Format("{0:c}", lineItem.CaseProviderDetails.Receivable);
}
if (!(e.Item.FindControl("StatusLiteral") == null))
{
Literal StatusLiteral = e.Item.FindControl("StatusLiteral") as Literal;
StatusLiteral.Text = lineItem.BillSubmissionResponse.Name;
}
if (lineItem.CaseProviderDetails.CPTCode != null)
{
if (!(e.Item.FindControl("cptLiteral") == null))
{
Literal cptLiteral = e.Item.FindControl("cptLiteral") as Literal;
cptLiteral.Text = String.Format("{0}-{1}",
lineItem.CaseProviderDetails.CPTCode.Code,
lineItem.CaseProviderDetails.CPTCode.Description);
}
}
if (!(e.Item.FindControl("editDetails") == null))
{
ImageButton editDetails = e.Item.FindControl("editDetails") as ImageButton;
editDetails.Attributes.Add("onclick", String.Format("EditBill('{0}','{1}','{2}'); return false;",
lineItem.CaseProviderDetails.CaseProviderDetailId.ToString(),
lineItem.CaseProviderDetails.Case.CaseId.ToString(), "Edit Bill"));
}
}
if ((e.Item is GridDataItem) && ( e.Item.OwnerTableView.Name == "Resubmit"))
{
PaymentSubmission submission = e.Item.DataItem as PaymentSubmission;
if (!(e.Item.FindControl("reSubmissionIdLiteral") == null))
{
Literal SubmissionIdLiteral = e.Item.FindControl("reSubmissionIdLiteral") as Literal;
if(submission.Parent != null)
SubmissionIdLiteral.Text = String.Format("HCFA-{0}:{1}", submission.Parent.PaymentSubmissionId, 1);
}
}
if ((e.Item is GridDataItem) && (e.Item.OwnerTableView.Name == "HcfaSubmissions"))
{
PaymentSubmission submission = e.Item.DataItem as PaymentSubmission;
if (!(e.Item.FindControl("SubmissionIdLiteral") == null))
{
Literal SubmissionIdLiteral = e.Item.FindControl("SubmissionIdLiteral") as Literal;
SubmissionIdLiteral.Text = String.Format("HCFA-{0}", submission.PaymentSubmissionId);
}
if (submission.Status == "Closed")
{
if (!(e.Item.FindControl("resubmit") == null))
{
ImageButton resubmit = e.Item.FindControl("resubmit") as ImageButton;
resubmit.Visible = false;
}
}
}
}
protected void paymentSubmissionGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
if (!e.IsFromDetailTable)
{
GetPaymentSubmission(3635, false);
}
}
protected void paymentSubmissionGrid_OnItemCommand(object sender, GridCommandEventArgs e)
{
switch ((e.Item).OwnerTableView.Name)
{
case "Procedures":
break;
case "Resubmit":
break;
case "HcfaSubmissions":
switch (e.CommandName)
{
case "viewDetails":
break;
}
break;
}
}
}
}