or
'Where To Stay
parentItem = radMenu.Items(1)
For Each row As DataRow In dt.Rows
childItem =
New RadMenuItem
childItem.Text = row(
"Name").ToString
childItem.NavigateUrl =
"~/AtlanticPortal/en/WhereToStay.aspx?Region=" & row("ID").ToString & "&Community=0&Category=0&ProvID=" & Session("ProvID").ToString & "&RegionName=" & row("Name").ToString
parentItem.Items.Add(childItem)
Next
I can get the sum benus to generate in relation to any of the 9 main menu items (parentItem = radMenu.Items(1)), but the sub menu items do not follow the same numbering... I need the menu items to be generated from a data source as children of a child of menu item1 if that makes any sense.
| Protected Sub RadGrid1_PreRender(ByVal sender As Object, ByVal e As EventArgs) |
| queueFilter = Request.QueryString("queue") |
| For Each item As GridDataItem In RadGrid1.MasterTableView.Items |
| Dim TaskID As String = item("TaskID").Text |
| If TaskID = " " Then |
| Dim cell As TableCell = item.Item("ExpandColumn") |
| Dim expandCollapseButton As Button = CType(cell.Controls(0), Button) |
| expandCollapseButton.Visible = False |
| ElseIf queueFilter = "My Requests" Then |
| item.Expanded = True |
| End If |
| Next |
| End Sub |
| <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Grid.aspx.vb" Inherits="Grid" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" > |
| <head runat="server"> |
| <title>Untitled Page</title> |
| <style type="text/css"> |
| .ZeroedOut |
| { |
| background-color:pink; |
| } |
| </style> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <div> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <telerik:RadGrid ID="grdOR" runat="server" AutoGenerateColumns="False" GridLines="None" Width="100%" Skin="WebBlue" > |
| <MasterTableView DataKeyNames="STYL_SEQ_NUM,RVD_QTY" AllowAutomaticUpdates="True" NoDetailRecordsText="No SKU records to display." NoMasterRecordsText="No Style records to display." EditMode="InPlace"> |
| <DetailTables> |
| <telerik:GridTableView runat="server" DataKeyNames="MSC_MDSE_NUM" NoDetailRecordsText="No Store records to display." > |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn Visible="True"> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridBoundColumn DataField="CLR_CDE" HeaderText="Color Code" UniqueName="CLR_CDE" > |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="CLR_DCD" HeaderText="Color Desc" UniqueName="CLR_DCD" > |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="STYL_SEQ_NUM" HeaderText="SSN" UniqueName="STYL_SEQ_NUM" > |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="MSC_MDSE_NUM" HeaderText="MSC" UniqueName="MSC_MDSE_NUM" > |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="RVD_QTY" HeaderText="RVD_QTY" UniqueName="RVD_QTY" ItemStyle-Width="50px" HeaderStyle-Width="50px"> |
| </telerik:GridBoundColumn> |
| <telerik:GridButtonColumn ButtonType="PushButton" Text="Zero" UniqueName="ZERO" CommandName="ZEROSKU" ItemStyle-Width="50px" HeaderStyle-Width="50px"> |
| </telerik:GridButtonColumn> |
| </Columns> |
| <DetailTables> |
| <telerik:GridTableView runat="server" DataKeyNames="STOR_CDE,MSC_MDSE_NUM,RVD_QTY" EditMode="InPlace" AllowAutomaticUpdates="True" Width="100%" > |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridEditCommandColumn /> |
| <telerik:GridTemplateColumn DataField="STOR_CDE" HeaderText="Store" UniqueName="STOR_CDE" > |
| <ItemTemplate> |
| <%#Eval("STOR_CDE")%> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox ID="txtStore" runat="server" Text='<%# Bind("STOR_CDE") %>' ReadOnly='<%# IIf(DataBinder.Eval(Container, "OwnerTableView.IsItemInserted"), "False", "True") %>'/> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="ORDR_QTY" HeaderText="Quantity" UniqueName="ORDR_QTY"> |
| <ItemTemplate> |
| <%#Eval("ORDR_QTY")%> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox ID="txtOrderQty" runat="server" Text='<%# Bind("ORDR_QTY") %>' ReadOnly='<%# IIf(DataBinder.Eval(Container, "OwnerTableView.IsItemInserted"), "False", "True") %>' /> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="MSC_MDSE_NUM" HeaderText="MSC" UniqueName="MSC_MDSE_NUM"> |
| <ItemTemplate> |
| <%#Eval("MSC_MDSE_NUM")%> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <%# Eval("MSC_MDSE_NUM") %> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="RVD_QTY" HeaderText="RVD_QTY" UniqueName="RVD_QTY" ItemStyle-Width="110px" HeaderStyle-Width="110px"> |
| <ItemTemplate> |
| <%#Eval("RVD_QTY")%> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox ID="txtRevisedQuantity" runat="server" Text='<%# Bind("RVD_QTY") %>' /> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| </Columns> |
| <EditFormSettings> |
| <EditColumn UniqueName="EditCommandColumn1"> |
| </EditColumn> |
| </EditFormSettings> |
| </telerik:GridTableView> |
| </DetailTables> |
| </telerik:GridTableView> |
| </DetailTables> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn Visible="True"> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridBoundColumn DataField="ITEM_DES" HeaderText="Desc" UniqueName="ITEM_DES"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="VEN_STYL_NUM" HeaderText="Style" UniqueName="VEN_STYL_NUM"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="STYL_SEQ_NUM" HeaderText="SSN" UniqueName="STYL_SEQ_NUM"> |
| </telerik:GridBoundColumn> |
| <telerik:GridTemplateColumn DataField="RVD_QTY" HeaderText="RVD_QTY" UniqueName="RVD_QTY" ItemStyle-Width="50px" HeaderStyle-Width="50px"> |
| <ItemTemplate> |
| <%#Eval("RVD_QTY")%> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox ID="txtRevisedStyle" runat="server" Text='<%# Bind("RVD_QTY") %>' /> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridButtonColumn ButtonType="PushButton" Text="Zero" UniqueName="ZERO" CommandName="ZEROSTYLE" ItemStyle-Width="50px" HeaderStyle-Width="50px"> |
| </telerik:GridButtonColumn> |
| </Columns> |
| <EditFormSettings > |
| <PopUpSettings Modal="True" /> |
| </EditFormSettings> |
| </MasterTableView> |
| <ClientSettings> |
| <Scrolling AllowScroll="True" UseStaticHeaders="True" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
| </div> |
| </form> |
| </body> |
| </html> |
| Imports System.Data |
| Imports Telerik.Web.UI |
| Partial Class Grid |
| Inherits System.Web.UI.Page |
| Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load |
| End Sub |
| Protected Sub grdOR_DetailTableDataBind(ByVal source As Object, ByVal e As Telerik.Web.UI.GridDetailTableDataBindEventArgs) Handles grdOR.DetailTableDataBind |
| Dim parentItem As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem) |
| If parentItem.Edit Then |
| Return |
| End If |
| Dim DataKeys() As String = parentItem.KeyValues.Split(",") |
| If e.DetailTableView.HierarchyIndex = "0" Then |
| If ViewState(e.DetailTableView.ClientID) Is Nothing Then |
| Dim Keys() As String = DataKeys(0).Split(":") |
| e.DetailTableView.DataSource = PopulateSKULevel(Keys(1).Replace("""", "").Replace("}", "")) |
| ee.DetailTableView.Name = e.DetailTableView.ClientID |
| ViewState(e.DetailTableView.ClientID) = e.DetailTableView.DataSource |
| Else |
| e.DetailTableView.DataSource = ViewState(e.DetailTableView.ClientID) |
| End If |
| ElseIf e.DetailTableView.HierarchyIndex.Substring(0, 2) = "0_" Then |
| If ViewState(e.DetailTableView.ClientID) Is Nothing Then |
| Dim Keys() As String = DataKeys(0).Split(":") |
| e.DetailTableView.DataSource = PopulateStoreLevel(Keys(1).Replace("""", "").Replace("}", "")) |
| ee.DetailTableView.Name = e.DetailTableView.ClientID |
| ViewState(e.DetailTableView.ClientID) = e.DetailTableView.DataSource |
| Else |
| e.DetailTableView.DataSource = ViewState(e.DetailTableView.ClientID) |
| If ViewState("grdOR_Event") = "STOREUPDATED" Then |
| Dim parentSKU As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem) |
| Dim parentStyle As GridDataItem = CType(parentSKU.OwnerTableView.ParentItem, GridDataItem) |
| parentSKU.OwnerTableView.DataSource = ViewState(ViewState("grdOR_DataSource_SKU").ToString) |
| parentStyle.OwnerTableView.DataSource = ViewState(ViewState("grdOR_DataSource_Style").ToString) |
| ViewState("grdOR_Event") = "" |
| ViewState("grdOR_DataSource_SKU") = "" |
| ViewState("grdOR_DataSource_Style") = "" |
| End If |
| End If |
| End If |
| End Sub |
| Protected Sub grdOR_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles grdOR.ItemCommand |
| Select Case e.CommandName |
| Case "ZEROSTYLE" |
| Dim StyleItem As GridDataItem = CType(e.Item, GridDataItem) |
| Dim dtStyle As DataTable = ViewState(grdOR.ClientID) |
| Dim SSN As String = StyleItem.OwnerTableView.DataKeyValues(StyleItem.ItemIndex)("STYL_SEQ_NUM").ToString |
| Dim Revised As String = StyleItem.OwnerTableView.DataKeyValues(StyleItem.ItemIndex)("RVD_QTY").ToString |
| ZeroParentRow(StyleItem, dtStyle, SSN, e.Canceled) |
| StyleItem.CssClass = "ZeroedOut" |
| If StyleItem.Expanded Then |
| For Each SKUItem As GridDataItem In StyleItem.ChildItem.NestedTableViews(0).Items |
| Dim dtSKU As DataTable = ViewState(SKUItem.OwnerTableView.Name) |
| ZeroParentRow(SKUItem, dtSKU, SSN, e.Canceled) |
| Next |
| StyleItem.Expanded = True |
| End If |
| Case "ZEROSKU" |
| End Select |
| End Sub |
| Public Sub ZeroParentRow(ByRef RowItem As GridDataItem, ByRef dt As DataTable, ByVal SSN As String, ByRef Canceled As Boolean) |
| Dim changedRows() As DataRow = dt.Select("STYL_SEQ_NUM = " & SSN) |
| If (changedRows.Length <> 1) Then |
| 'MeMe.Label1.Text = Me.Label1.Text + "Unable to locate the Order for updating." |
| Canceled = True |
| Return |
| End If |
| changedRows(0).BeginEdit() |
| Try |
| changedRows(0)("RVD_QTY") = 0 |
| changedRows(0).EndEdit() |
| changedRows(0).AcceptChanges() |
| grdOR.DataSource = dt |
| 'grdOR.Rebind() |
| ViewState(RowItem.OwnerTableView.ClientID) = dt |
| 'RowItem.Expanded = True |
| Catch ex As Exception |
| changedRows(0).CancelEdit() |
| 'Label1Label1.Text = Label1.Text & "Unable to update Orders. Reason: " & ex.Message |
| Canceled = True |
| End Try |
| End Sub |
| Protected Sub grdOR_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles grdOR.NeedDataSource |
| grdOR.DataSource = PopulateStyleLevel() |
| ViewState(grdOR.ClientID) = grdOR.DataSource |
| End Sub |
| Private Function CalculateStoreTotal(ByVal dt As DataTable) As Integer |
| Dim newValues As New Hashtable |
| Dim Total As Integer = 0 |
| For Each r As DataRow In dt.Rows |
| Total += Convert.ToInt32(r("RVD_QTY")) |
| Next |
| Return Total |
| End Function |
| Private Function PopulateStyleLevel() As DataTable |
| Dim dt As New DataTable |
| Dim c1 As New DataColumn |
| Dim c2 As New DataColumn |
| Dim c3 As New DataColumn |
| Dim c4 As New DataColumn |
| c1.ColumnName = "ITEM_DES" |
| c2.ColumnName = "VEN_STYL_NUM" |
| c3.ColumnName = "STYL_SEQ_NUM" |
| c4.ColumnName = "RVD_QTY" |
| dt.Columns.Add(c1) |
| dt.Columns.Add(c2) |
| dt.Columns.Add(c3) |
| dt.Columns.Add(c4) |
| Dim r As DataRow = dt.NewRow |
| r("ITEM_DES") = "Test Item 1" |
| r("VEN_STYL_NUM") = "TEST100" |
| r("STYL_SEQ_NUM") = "0123456789999" |
| r("RVD_QTY") = "20" |
| dt.Rows.Add(r) |
| r = dt.NewRow |
| r("ITEM_DES") = "Test Item 2" |
| r("VEN_STYL_NUM") = "TEST200" |
| r("STYL_SEQ_NUM") = "0123456788888" |
| r("RVD_QTY") = "10" |
| dt.Rows.Add(r) |
| 'grdOR.DataSource = dt |
| 'grdOR.DataSource = New DataView(dt) |
| 'grdOR.DataBind() |
| Return dt |
| End Function |
| Private Function PopulateSKULevel(ByVal SSN As String) As DataTable |
| Dim dt As New DataTable |
| Dim c1 As New DataColumn |
| Dim c2 As New DataColumn |
| Dim c3 As New DataColumn |
| Dim c4 As New DataColumn |
| Dim c5 As New DataColumn |
| c1.ColumnName = "CLR_CDE" |
| c2.ColumnName = "CLR_DCD" |
| c3.ColumnName = "STYL_SEQ_NUM" |
| c4.ColumnName = "MSC_MDSE_NUM" |
| c5.ColumnName = "RVD_QTY" |
| dt.Columns.Add(c1) |
| dt.Columns.Add(c2) |
| dt.Columns.Add(c3) |
| dt.Columns.Add(c4) |
| dt.Columns.Add(c5) |
| Dim r As DataRow = dt.NewRow |
| r("CLR_CDE") = "100" |
| r("CLR_DCD") = "BLUE" |
| r("STYL_SEQ_NUM") = "0123456789999" |
| r("MSC_MDSE_NUM") = "0123456789999" |
| r("RVD_QTY") = "20" |
| dt.Rows.Add(r) |
| r = dt.NewRow |
| r("CLR_CDE") = "200" |
| r("CLR_DCD") = "RED" |
| r("STYL_SEQ_NUM") = "0123456788888" |
| r("MSC_MDSE_NUM") = "0123456788888" |
| r("RVD_QTY") = "10" |
| dt.Rows.Add(r) |
| r = dt.NewRow |
| r("CLR_CDE") = "300" |
| r("CLR_DCD") = "YELLOW" |
| r("STYL_SEQ_NUM") = "0123456788888" |
| r("MSC_MDSE_NUM") = "0123456787777" |
| r("RVD_QTY") = "40" |
| dt.Rows.Add(r) |
| Dim rows() As DataRow = dt.Select("STYL_SEQ_NUM = '" & SSN & "'") |
| Dim dtRet As DataTable = dt.Clone |
| For Each row As DataRow In rows |
| r = dtRet.NewRow |
| r(0) = row(0) |
| r(1) = row(1) |
| r(2) = row(2) |
| r(3) = row(3) |
| r(4) = row(4) |
| dtRet.Rows.Add(r) |
| Next |
| 'dtRet.TableName = "SKU" |
| Return dtRet |
| End Function |
| Private Function PopulateStoreLevel(ByVal MSC As String) As DataTable |
| Dim dt As New DataTable |
| Dim c1 As New DataColumn |
| Dim c2 As New DataColumn |
| Dim c3 As New DataColumn |
| Dim c4 As New DataColumn |
| c1.ColumnName = "STOR_CDE" |
| c2.ColumnName = "ORDR_QTY" |
| c3.ColumnName = "MSC_MDSE_NUM" |
| c4.ColumnName = "RVD_QTY" |
| dt.Columns.Add(c1) |
| dt.Columns.Add(c2) |
| dt.Columns.Add(c3) |
| dt.Columns.Add(c4) |
| Dim r As DataRow = dt.NewRow |
| r("STOR_CDE") = "21" |
| r("ORDR_QTY") = "5" |
| r("MSC_MDSE_NUM") = "0123456789999" |
| r("RVD_QTY") = "20" |
| dt.Rows.Add(r) |
| r = dt.NewRow |
| r("STOR_CDE") = "54" |
| r("ORDR_QTY") = "7" |
| r("MSC_MDSE_NUM") = "0123456788888" |
| r("RVD_QTY") = "10" |
| dt.Rows.Add(r) |
| r = dt.NewRow |
| r("STOR_CDE") = "67" |
| r("ORDR_QTY") = "5" |
| r("MSC_MDSE_NUM") = "0123456787777" |
| r("RVD_QTY") = "40" |
| dt.Rows.Add(r) |
| Dim rows() As DataRow = dt.Select("MSC_MDSE_NUM = '" & MSC & "'") |
| Dim dtRet As DataTable = dt.Clone |
| For Each row As DataRow In rows |
| r = dtRet.NewRow |
| r(0) = row(0) |
| r(1) = row(1) |
| r(2) = row(2) |
| r(3) = row(3) |
| dtRet.Rows.Add(r) |
| Next |
| Return dtRet |
| End Function |
| End Class |