This is a migrated thread and some comments may be shown as answers.

Alignment issue for Radgrid inside NestedViewTemplate

2 Answers 155 Views
Grid
This is a migrated thread and some comments may be shown as answers.
PRATIBHA
Top achievements
Rank 1
PRATIBHA asked on 17 Jun 2013, 01:55 PM
Hi ,

I am using NestedViewTemplate to place a child grid within a parent grid . On click of a column in parent grid the child grid expands . But the columns are not aligned properly . please find the screenshot attached .


Here is my code :

 

 

 

 

<

 

telerik:RadGrid ID="RadGridActions" runat="server" CellSpacing="0" GridLines="None" AutoGenerateColumns="False" AllowSorting="true" Skin="WebBlue"

 

 

OnItemCommand="RadGridActions_ItemCommand" ShowFooter="true" OnItemCreated="RadGridActions_ItemCreated" OnDataBound="RadGridActions_DataBound" >

 

 

<MasterTableView>

 

 

<Columns>

 

 

<telerik:GridTemplateColumn>

 

 

<ItemTemplate>

 

 

<asp:CheckBox ID="chkStat" runat="server" autopostback="true" />

 

 

</ItemTemplate>

 

 

<EditItemTemplate>

 

 

<asp:CheckBox ID="chk" runat="server" AutoPostBack="true" />

 

 

</EditItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

 

 

<telerik:GridTemplateColumn visible="false">

 

 

<ItemTemplate>

 

 

<asp:Button ID="BtnExpand" runat="server" Text="+" style="width:20px;height:20px;" CommandName="ExpandOrCollapse" Visible="false" />

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Set Seq" DataField="ActionSetSequence"></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Action Name" DataField="ActionName" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Predecessor Set Seq." DataField="PredecessorSetSequence" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Created Dt" DataField="CreateDateTime" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Last Updated Dt" DataField="EndDateTime" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Status" UniqueName="Status" DataField="GILStatus" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn UniqueName="RuntimeDt" DataField="NextRunDateTime" Visible="false"></telerik:GridBoundColumn>

 

 

 

<telerik:GridTemplateColumn UniqueName="ImgSchedule" HeaderText="" ></telerik:GridTemplateColumn>

 

 

 

<telerik:GridBoundColumn UniqueName="ActionId" DataField="ActionId" Visible="false" HeaderText="Action Id" ></telerik:GridBoundColumn>

 

 

 

 

</Columns>

 

 

 

 

 

 

<NestedViewSettings DataSourceID="SqlDataSource2" >

 

 

<ParentTableRelation>

 

 

<telerik:GridRelationFields DetailKeyField="ActionID" MasterKeyField="ActionId" />

 

 

</ParentTableRelation>

 

 

</NestedViewSettings>

 

 

 

<NestedViewTemplate>

 

 

 

<telerik:RadGrid ID="RadChildGrid" runat="server" Skin="WebBlue" AutoGenerateColumns="False" OnNeedDataSource="RadChildGrid_Datasource" OnDataBound="RadChildGrid_OnDataBound" OnItemCommand="RadChildGrid_ItemCommand" >

 

 

<MasterTableView>

 

 

<Columns>

 

 

 

<telerik:GridTemplateColumn HeaderText="Replay" UniqueName="Replay">

 

 

<ItemTemplate>

 

 

<asp:ImageButton ID ="ImgBtnReplay" runat="server" ImageUrl="~/Images/replay_disabled.png" CommandName="ReplayAction" CssClass="ReplayImg"/>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

 

<telerik:GridTemplateColumn>

 

 

<ItemTemplate>

 

 

<asp:LinkButton ID="LBtnServiceName" runat="server" CommandName="Service" Text='<%# Bind("ServiceName")%>' ></asp:LinkButton>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

 

 

 

<telerik:GridBoundColumn HeaderText="Source Trade Ref" DataField="SourceSystemID" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="GRIP Trade Ref" DataField="GRIPPlacementID" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Created Dt" DataField="MessageDateTime" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Last Updated Dt" DataField="StatusDateTime" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn HeaderText="Status" DataField="GILStatus" UniqueName="Status" ></telerik:GridBoundColumn>

 

 

 

<telerik:GridTemplateColumn UniqueName="ImgSchedule" HeaderText="" ></telerik:GridTemplateColumn>

 

 

 

<telerik:GridTemplateColumn UniqueName="ImgSchedule" HeaderText="" ></telerik:GridTemplateColumn>

 

 

 

<telerik:GridBoundColumn UniqueName="RuntimeDt" DataField="NextRunDateTime" Visible="false"></telerik:GridBoundColumn>

 

 

 

<telerik:GridBoundColumn UniqueName="ServiceId" DataField="ServiceID" Visible="false"></telerik:GridBoundColumn>

 

 

 

<telerik:GridTemplateColumn>

 

 

<ItemTemplate>

 

 

<asp:LinkButton ID="LBtnServiceId" runat="server" Text='<%# Bind("ServiceID") %>'></asp:LinkButton>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

 

 

</Columns>

 

 

 

</MasterTableView>

 

 

 

</telerik:RadGrid>

 

 

</NestedViewTemplate>

 

 

 

</MasterTableView>

 

 

</telerik:RadGrid>

 

2 Answers, 1 is accepted

Sort by
0
PRATIBHA
Top achievements
Rank 1
answered on 17 Jun 2013, 02:02 PM
Further to the query ,

Here is the code that i have used in code behind :


 

 

protected void RadGridActions_ItemCommand(object sender, GridCommandEventArgs e)

 

{

 

GridDataItem data = e.Item as GridDataItem;

 

 

//storing Action Id in order to fetch data for child grid begins here .

 

 

 

 

 

TableCell Act = data["ActionId"];

 

 

string strActId;

 

strActId = Act.Text.ToString();

ActionId =

int.Parse(strActId);

 

 

//storing Action Id in order to fetch data for child grid ends here .

 

 

 

 

 

 

if (e.CommandName == RadGrid.ExpandCollapseCommandName && !e.Item.Expanded)

 

{

 

GridDataItem parentItem = e.Item as GridDataItem;

 

 

RadGrid rg = parentItem.ChildItem.FindControl("RadChildGrid") as RadGrid;

 

rg.Rebind();

}

 

if (e.Item is GridDataItem)

 

{

 

 

//Customizing row with status as 'failed', begins here

 

 

 

 

 

TableCell cell = data["Status"];

 

 

 

 

if (cell.Text == "FAILED")

 

{

data.CssClass =

"FailedRow";

 

 

ImageButton Image = new ImageButton();

 

Image.ImageUrl =

"Images/scheduled.png";

 

Image.CssClass =

"ScheduledImg";

 

 

cell.Wrap =

false;

 

 

TableCell dt = data["RuntimeDt"];

 

 

TableCell img = data["ImgSchedule"];

 

img.Controls.Add(Image);

Image.ToolTip =

" FAILED : Scheduled to retry at " + dt.Text;

 

}

 

//Customizing row with status as 'failed', begins here

 

 

 

 

 

 

}



 

protected void RadChildGrid_Datasource(object source, GridNeedDataSourceEventArgs e)

 

{

 

DataSet ds;

 

ds = sql.execSp_sp_db_Select_Services(ActionId);

 

GridDataItem parentItem = ((source as RadGrid).NamingContainer as GridNestedViewItem).ParentItem as GridDataItem;

 

(source

as RadGrid).DataSource = ds;

 

}

0
Galin
Telerik team
answered on 20 Jun 2013, 10:23 AM
Hi Pratibha,

Please check out in the following help topic how to align different levels
http://www.telerik.com/help/aspnet-ajax/grid-align-columns-in-hierarchy.html

I hope it helps.

Regards,
Galin
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
Tags
Grid
Asked by
PRATIBHA
Top achievements
Rank 1
Answers by
PRATIBHA
Top achievements
Rank 1
Galin
Telerik team
Share this question
or