Hi
I am trying to :
a. create a header text for my OrderId column in my nested grid and the specific Employee, something like: "Orders for <Last Name> "
b. when i press the Go button I would like to display the EmployeeID?
thanks
D
| <%@ Page Language="VB" AutoEventWireup="false" CodeFile="NestedNew.aspx.vb" Inherits="NestedNew" %> |
| <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> |
| <!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 id="Head1" runat="server"> |
| </head> |
| <body class="BODY"> |
| <form runat="server" id="mainForm" method="post"> |
| <telerik:RadScriptManager runat="server" ID="ScriptManager1"> |
| </telerik:RadScriptManager> |
| <!-- content start --> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadGrid1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" /> |
| <telerik:RadGrid ID="RadGrid1" OnPreRender="RadGrid1_PreRender" DataSourceID="SqlDataSource1" |
| runat="server" AutoGenerateColumns="False" AllowSorting="True" AllowMultiRowSelection="False" |
| AllowPaging="True" PageSize="5" GridLines="None" ShowGroupPanel="true"> |
| <PagerStyle Mode="NumericPages"></PagerStyle> |
| <MasterTableView DataSourceID="SqlDataSource1" DataKeyNames="EmployeeID" AllowMultiColumnSorting="True" |
| GroupLoadMode="Server"> |
| <NestedViewTemplate> |
| <asp:Label ID="label1" runat="server" Text='<%# Eval ("EmployeeID") %>'></asp:Label> |
| <asp:Label ID="label2" runat="server" Text='<%# Eval ("LastName") %>'></asp:Label> |
| <asp:Panel runat="server" ID="InnerContainer" CssClass="viewWrap" Visible="false"> |
| <telerik:RadGrid runat="server" ID="OrdersGrid" DataSourceID="ObjectDataSource1" OnItemDataBound="onitemdatabound" |
| OnItemCommand="onitemnested_command" ShowFooter="true" AllowSorting="true" EnableLinqExpressions="false"> |
| <MasterTableView ShowHeader="true" AutoGenerateColumns="true" AllowPaging="true" |
| DataKeyNames="OrderID" PageSize="7" HierarchyLoadMode="ServerOnDemand"> |
| <Columns> |
| <telerik:GridEditCommandColumn> |
| </telerik:GridEditCommandColumn> |
| </Columns> |
| <EditFormSettings EditFormType="Template"> |
| <FormTemplate> |
| <asp:Button ID="btninsert" runat="server" CommandName="PerformInsert" Text="go" /> |
| </FormTemplate> |
| </EditFormSettings> |
| </MasterTableView> |
| </telerik:RadGrid> |
| <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetEmployeeid" |
| TypeName="EmployeesODS"> |
| <SelectParameters> |
| <asp:ControlParameter ControlID="Label1" Name="empid" PropertyName="Text" |
| Type="String" /> |
| </SelectParameters> |
| </asp:ObjectDataSource> |
| <asp:SqlDataSource ID="SqlDataSource3" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" |
| ProviderName="System.Data.SqlClient" SelectCommand="SELECT OrderID, [Order Details].UnitPrice, Quantity, Discount, Products.ProductName FROM ([Order Details] LEFT JOIN Products on [Order Details].ProductID = Products.ProductID) where OrderID = @OrderID" |
| runat="server"> |
| <SelectParameters> |
| <asp:SessionParameter Name="OrderID" SessionField="OrderID" Type="Int32" /> |
| </SelectParameters> |
| </asp:SqlDataSource> |
| </asp:Panel> |
| </NestedViewTemplate> |
| <Columns> |
| <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="First Name" HeaderButtonType="TextButton" |
| DataField="FirstName" UniqueName="FirstName"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="LastName" HeaderText="Last Name" HeaderButtonType="TextButton" |
| DataField="LastName" UniqueName="LastName"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" |
| DataField="Title" UniqueName="Title"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="BirthDate" DataFormatString="{0:MM/dd/yyyy}" |
| HeaderText="Birth Date" HeaderButtonType="TextButton" DataField="BirthDate" UniqueName="BirthDate"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="City" HeaderText="City" HeaderButtonType="TextButton" |
| DataField="City" UniqueName="City"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="Country" HeaderText="Country" HeaderButtonType="TextButton" |
| DataField="Country" UniqueName="Country"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </MasterTableView> |
| <ClientSettings AllowDragToGroup="true" /> |
| </telerik:RadGrid> |
| <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" |
| ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM Employees" |
| runat="server"></asp:SqlDataSource> |
| <!-- content end --> |
| </form> |
| </body> |
| </html> |
| Imports Telerik.Web.UI |
| Imports System |
| Imports System.Data |
| Imports System.Data.SqlClient |
| Imports System.Web.UI.WebControls |
| Imports System.Configuration |
| Partial Class NestedNew |
| Inherits System.Web.UI.Page |
| Protected Sub RadGrid1_PreRender(ByVal sender As Object, ByVal e As EventArgs) Handles RadGrid1.PreRender |
| If Not Page.IsPostBack Then |
| RadGrid1.MasterTableView.Items(0).Expanded = True |
| RadGrid1.MasterTableView.Items(0).ChildItem.FindControl("InnerContainer").Visible = True |
| End If |
| End Sub |
| Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As GridCommandEventArgs) Handles RadGrid1.ItemCommand |
| If e.CommandName = RadGrid.ExpandCollapseCommandName Then |
| Session("EmployeeName") = DirectCast(source, Telerik.Web.UI.RadGrid).MasterTableView.Items(e.Item.ItemIndex)("LastName").Text |
| DirectCast(e.Item, GridDataItem).ChildItem.FindControl("InnerContainer").Visible = Not e.Item.Expanded |
| End If |
| End Sub |
| Protected Sub RadGrid1_ItemCreated(ByVal sender As Object, ByVal e As GridItemEventArgs) Handles RadGrid1.ItemCreated |
| If TypeOf e.Item Is GridNestedViewItem Then |
| e.Item.FindControl("InnerContainer").Visible = (DirectCast(e.Item, GridNestedViewItem)).ParentItem.Expanded |
| End If |
| End Sub |
| Public Shared Function GetDataTable(ByVal query As String) As DataTable |
| Dim ConnString As String = ConfigurationManager.ConnectionStrings("NorthwindConnectionString").ConnectionString |
| Dim conn As SqlConnection = New SqlConnection(ConnString) |
| Dim adapter As SqlDataAdapter = New SqlDataAdapter |
| adapter.SelectCommand = New SqlCommand(query, conn) |
| Dim table1 As New DataTable |
| conn.Open() |
| Try |
| adapter.Fill(table1) |
| Finally |
| conn.Close() |
| End Try |
| Return table1 |
| End Function |
| Protected Sub onitemnested_command(ByVal source As Object, ByVal e As GridCommandEventArgs) |
| If e.CommandName = RadGrid1.PerformInsertCommandName Then |
| 'write the employeeid |
| 'Response.Write(label1.text) |
| End If |
| End Sub |
| Protected Sub onitemdatabound(ByVal sender As Object, ByVal e As GridItemEventArgs) |
| If e.Item.ItemType = GridItemType.Header And Not Session("EmployeeName") Is Nothing Then |
| Dim hd As GridHeaderItem = e.Item |
| hd("OrderID").Text = " the orders for " + Session("EmployeeName").ToString() |
| End If |
| End Sub |
| End Class |
App_Code folder :
| Imports Microsoft.VisualBasic |
| Imports Telerik.Web.UI |
| Imports System |
| Imports System.Data |
| Imports System.Data.SqlClient |
| Imports System.Web.UI.WebControls |
| Imports System.Configuration |
| Public Class EmployeesODS |
| Public Shared Function GetEmployeeid(ByVal empid As String) As ArrayList |
| Dim arr As New ArrayList |
| For Each dr As DataRow In GetDataTable("Select * from orders where employeeid='" + empid + "'").Rows |
| Dim emp As New Employee |
| emp.EmployeeID = dr("EmployeeID") |
| emp.OrderId = dr("OrderID") |
| arr.Add(emp) |
| Next |
| Return arr |
| End Function |
| Public Shared Function GetDataTable(ByVal query As String) As DataTable |
| Dim ConnString As String = ConfigurationManager.ConnectionStrings("NorthwindConnectionString").ConnectionString |
| Dim conn As SqlConnection = New SqlConnection(ConnString) |
| Dim adapter As SqlDataAdapter = New SqlDataAdapter |
| adapter.SelectCommand = New SqlCommand(query, conn) |
| Dim table1 As New DataTable |
| conn.Open() |
| Try |
| adapter.Fill(table1) |
| Finally |
| conn.Close() |
| End Try |
| Return table1 |
| End Function |
| End Class |
| Public Class Employee |
| Private _OrderId As String |
| Private _CompanyName As String |
| Private _EmployeeID As String |
| Public Property CompanyName() As String |
| Get |
| Return _CompanyName |
| End Get |
| Set(ByVal value As String) |
| _CompanyName = value |
| End Set |
| End Property |
| Public Property EmployeeID() As String |
| Get |
| Return _EmployeeID |
| End Get |
| Set(ByVal value As String) |
| _EmployeeID = value |
| End Set |
| End Property |
| Public Property OrderId() As String |
| Get |
| Return _OrderId |
| End Get |
| Set(ByVal value As String) |
| _OrderId = value |
| End Set |
| End Property |
| End Class |