|
Requirements |
|
| RadControls version | 2008.01.0415.20 |
| .NET version | 2.0 |
| Visual Studio version | 2005 |
| programming language | C# |
| browser support |
all browsers supported by RadControls |
PROJECT DESCRIPTION
This project illustrates how to select and expand a hierarchical Grid using the navigation buttons in the CommandItem. This is achieved by adding a GridButtonColumn to select and expand the Grid. Hook the ItemCommand Event and perform the computation there. Below are the code snippets.
ASPX:
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head runat="server"> |
| <title>Untitled Page</title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <asp:ScriptManager ID="ScriptManager1" runat="server" /> |
| <div> |
| <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" PageSize="5" DataSourceID="SqlDataSource1" GridLines="None" OnItemCommand="RadGrid1_ItemCommand" Skin="Default2006" OnPreRender="RadGrid1_PreRender"> |
| <MasterTableView AutoGenerateColumns="False" CommandItemDisplay="Top" DataSourceID="SqlDataSource1" > |
| <CommandItemTemplate> |
| <asp:LinkButton ID="LinkButton1" Text="Next" CommandName="Next" runat="server"></asp:LinkButton> |
| <asp:LinkButton ID="LinkButton2" Text="Previous" CommandName="Prev" runat="server"></asp:LinkButton> |
| </CommandItemTemplate> |
| <RowIndicatorColumn Visible="False"> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn Resizable="False"> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridBoundColumn DataField="CustomerID" HeaderText="CustomerID" SortExpression="CustomerID" |
| UniqueName="CustomerID"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" |
| UniqueName="CompanyName"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode" |
| UniqueName="PostalCode"> |
| </telerik:GridBoundColumn> |
| <telerik:GridButtonColumn CommandName="Select" text="Select" HeaderText="SelectColumn" UniqueName="column" ></telerik:GridButtonColumn> |
| </Columns> |
| <EditFormSettings> |
| <PopUpSettings ScrollBars="None" /> |
| </EditFormSettings> |
| <DetailTables> |
| <telerik:GridTableView runat="server" DataSourceID="SqlDataSource2" > |
| <Columns> |
| <telerik:GridBoundColumn DataField="CustomerID" DataType="System.Int32" HeaderText="CustomerID" |
| SortExpression="CustomerID" UniqueName="CustomerID"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="OrderID" HeaderText="OrderID" SortExpression="OrderID" |
| UniqueName="OrderID"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| <RowIndicatorColumn Visible="False"> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn Resizable="False" Visible="False"> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <EditFormSettings> |
| <PopUpSettings ScrollBars="None" /> |
| </EditFormSettings> |
| </telerik:GridTableView> |
| </DetailTables> |
| </MasterTableView> |
| <ClientSettings> |
| <Selecting AllowRowSelect="True" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
| |
| <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString2 %>" |
| SelectCommand="SELECT [CustomerID], [CompanyName], [PostalCode], [Region] FROM [Customers]"> |
| </asp:SqlDataSource> |
| <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString2 %>" |
| SelectCommand="SELECT [OrderID], [CustomerID], [EmployeeID] FROM [Orders]"> |
| </asp:SqlDataSource> |
| <br /> |
| </div> |
| </form> |
| </body> |
| </html> |
C#:
| using System; |
| using System.Data; |
| using System.Configuration; |
| using System.Web; |
| using System.Web.Security; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using System.Web.UI.WebControls.WebParts; |
| using System.Web.UI.HtmlControls; |
| using System.Data.Sql; |
| using Telerik.Web.UI; |
| public partial class _Default : System.Web.UI.Page |
| { |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| } |
| protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) |
| { |
| if (e.CommandName == "Select") |
| { |
| GridDataItem item = (GridDataItem)e.Item; |
| item.Expanded = true; |
| } |
| if (e.CommandName == "Next") |
| { |
| foreach (GridDataItem item in RadGrid1.MasterTableView.Items) |
| { |
| if (item.Selected) |
| { |
| item.Selected = false; |
| item.Expanded = false; |
| int CurrentIndex = item.ItemIndex; |
| int NextIndex; |
| if (CurrentIndex == RadGrid1.PageSize - 1) |
| { |
| NextIndex = 0; |
| } |
| else |
| { |
| NextIndex = CurrentIndex + 1; |
| } |
| RadGrid1.MasterTableView.Items[NextIndex].Selected = true; |
| RadGrid1.MasterTableView.Items[NextIndex].Expanded = true; |
| break; |
| } |
| } |
| } |
| else if (e.CommandName == "Prev") |
| { |
| foreach (GridDataItem item in RadGrid1.MasterTableView.Items) |
| { |
| if (item.Selected) |
| { |
| item.Selected = false; |
| item.Expanded = false; |
| int CurrentIndex = item.ItemIndex; |
| int PrevIndex; |
| if (CurrentIndex == 0) |
| { |
| PrevIndex = RadGrid1.PageSize-1; |
| } |
| else |
| { |
| PrevIndex = CurrentIndex - 1; |
| } |
| RadGrid1.MasterTableView.Items[PrevIndex].Selected = true; |
| RadGrid1.MasterTableView.Items[PrevIndex].Expanded = true; |
| break; |
| } |
| } |
| } |
| } |
| protected void RadGrid1_PreRender(object sender, EventArgs e) |
| { |
| foreach (GridColumn col in RadGrid1.MasterTableView.RenderColumns) |
| { |
| if (col.UniqueName == "ExpandColumn") |
| { |
| col.Display = false; |
| } |
| } |
| } |
| } |