Dear Forum User,
I am getting pretty frustrated on this issues with Page Indexing and Page Sizing in the Detail Tables. When I clicked the Page index or Page Size, then the grid just keep collapsing. Please see image. I'm not using NeedDataSource. I have tried detailtabledatabind, itemcommand, itemdatabound etc but still not working.
Please help me, it is urgent. (Trying to use the support ticket but I guess they are down since it keeps leading me to Error Page cannot be found).
This is my complete code:
Thank you very much.
I am getting pretty frustrated on this issues with Page Indexing and Page Sizing in the Detail Tables. When I clicked the Page index or Page Size, then the grid just keep collapsing. Please see image. I'm not using NeedDataSource. I have tried detailtabledatabind, itemcommand, itemdatabound etc but still not working.
Please help me, it is urgent. (Trying to use the support ticket but I guess they are down since it keeps leading me to Error Page cannot be found).
This is my complete code:
<%@ Page Title="" Language="VB" MasterPageFile="~/Main.master" AutoEventWireup="false" CodeFile="AddFunding.aspx.vb" Inherits="AddFunding" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"head"
Runat
=
"Server"
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"ContentPlaceHolder1"
Runat
=
"Server"
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Height
=
"75px"
Width
=
"75px"
InitialDelayTime
=
"500"
MinDisplayTime
=
"250"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxManagerProxy
ID
=
"RadAjaxManagerProxy1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGridFunding"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGridFunding"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
h3
>Line Item Details for PO #<
span
id
=
"ponum"
runat
=
"server"
></
span
></
h3
>
<
div
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
Width
=
"100%"
>
<
table
>
<
tr
>
<
td
align
=
"right"
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
telerik:RadGrid
ID
=
"RadGridFunding"
runat
=
"server"
DataSourceID
=
"SqlDsLineItem"
GridLines
=
"None"
AutoGenerateColumns
=
"False"
AllowPaging
=
"True"
PageSize
=
"3"
AllowMultiRowSelection
=
"False"
AllowSorting
=
"True"
>
<
MasterTableView
HierarchyDefaultExpanded
=
"false"
InsertItemPageIndexAction
=
"ShowItemOnFirstPage"
HierarchyLoadMode
=
"Client"
Name
=
"Main"
Width
=
"100%"
DataKeyNames
=
"LineItemNumber"
DataSourceID
=
"SqlDsLineItem"
>
<
DetailTables
>
<
telerik:GridTableView
runat
=
"server"
HierarchyDefaultExpanded
=
"false"
CommandItemDisplay
=
"Top"
Name
=
"Detail"
AllowPaging
=
"true"
DataKeyNames
=
"FundingID"
DataSourceID
=
"SqlDsFunding"
AllowAutomaticUpdates
=
"true"
AllowAutomaticInserts
=
"true"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"LineItemNumber"
MasterKeyField
=
"LineItemNumber"
/>
</
ParentTableRelation
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"True"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
/>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
>
<
HeaderStyle
Width
=
"20px"
/>
</
telerik:GridEditCommandColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Funding Id"
SortExpression
=
"FundingId"
UniqueName
=
"FundingId"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblFundingId"
Text='<%# Eval("FundingId") %>' ></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Line Item Number"
SortExpression
=
"LineItemNumber"
UniqueName
=
"LineItemNumber"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblLineItemNumber"
Text='<%# Eval("LineItemNumber") %>' ></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
span
><
telerik:RadTextBox
runat
=
"server"
ID
=
"txtRadLineItemNumber"
Text='<%# Bind("LineItemNumber") %>' Width="100px" Skin="Default" ReadOnly="true" ></
telerik:RadTextBox
></
span
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridDropDownColumn
DataField
=
"OperatingUnit"
DataSourceID
=
"SqlDsOpUnit"
HeaderText
=
"Operating Unit"
ListTextField
=
"operatingUnitId"
ListValueField
=
"operatingUnitId"
UniqueName
=
"OperatingUnit"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Account Number"
SortExpression
=
"AccountNumber"
UniqueName
=
"AccountNumber"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblAccountNumber"
Text='<%# Eval("AccountNumber") %>' ></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
span
><
telerik:RadTextBox
runat
=
"server"
ID
=
"txtRadAccountNumber"
Text='<%# Bind("AccountNumber") %>' Width="100px" Skin="Default" ></
telerik:RadTextBox
></
span
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridDropDownColumn
DataField
=
"Department"
DataSourceID
=
"SqlDsDept"
HeaderText
=
"Department"
ListTextField
=
"DepartmentId"
ListValueField
=
"DepartmentId"
UniqueName
=
"Department"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Budget Reference"
SortExpression
=
"BudgetReference"
UniqueName
=
"BudgetReference"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblBudgetReference"
Text='<%# Eval("BudgetReference") %>' ></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
span
><
telerik:RadTextBox
runat
=
"server"
ID
=
"txtRadBudgetReference"
Text='<%# Bind("BudgetReference") %>' Width="100px" Skin="Default" ></
telerik:RadTextBox
></
span
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Allocated Amount"
SortExpression
=
"AllocatedAmount"
UniqueName
=
"AllocatedAmount"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblAllocatedAmount"
Text='<%# Eval("AllocatedAmount", "{0:C}") %>'></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
span
><
telerik:RadNumericTextBox
runat
=
"server"
ID
=
"txtRadAllocatedAmount"
DbValue='<%# Bind("AllocatedAmount") %>' Width="100px" Skin="Default" ></
telerik:RadNumericTextBox
>
<
span
style
=
"color: Red"
>
<
asp:RequiredFieldValidator
ID
=
"RequiredFieldValidator1"
ControlToValidate
=
"txtRadAllocatedAmount"
ErrorMessage
=
"*"
runat
=
"server"
>
</
asp:RequiredFieldValidator
></
span
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
""
SortExpression
=
"UpdatedDate"
UniqueName
=
"UpdatedDate"
Visible
=
"false"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblUpdatedDate"
Text='<%# Eval("UpdatedDate", "{0:d}") %>' Visible="false" ></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
span
><
telerik:RadTextBox
runat
=
"server"
ID
=
"txtRadUpdatedDate"
Text='<%# Bind("UpdatedDate") %>' Width="100px" Skin="Default" Visible="false" ReadOnly="true"></
telerik:RadTextBox
></
span
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
""
SortExpression
=
"UpdatedBy"
UniqueName
=
"UpdatedBy"
Visible
=
"false"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblUpdatedBy"
Text='<%# Eval("UpdatedBy") %>' Visible="false" ></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
span
><
telerik:RadTextBox
runat
=
"server"
ID
=
"txtRadUpdatedBy"
Text='<%# Bind("UpdatedBy") %>' Visible="false" ReadOnly="true"></
telerik:RadTextBox
></
span
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
ButtonType
=
"ImageButton"
/>
</
EditFormSettings
>
</
telerik:GridTableView
>
</
DetailTables
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
/>
<
ExpandCollapseColumn
Visible
=
"True"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"LineItemNumber"
DataType
=
"System.Int64"
HeaderText
=
"Line Item Number"
SortExpression
=
"LineItemNumber"
UniqueName
=
"LineItemNumber"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PartName"
HeaderText
=
"Part Name"
SortExpression
=
"PartName"
UniqueName
=
"PartName"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PartNumber"
HeaderText
=
"Part#"
SortExpression
=
"PartNumber"
UniqueName
=
"PartNumber"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"UnitPrice"
DataType
=
"System.Double"
DataFormatString
=
"{0:c}"
HeaderText
=
"Unit Price"
SortExpression
=
"UnitPrice"
UniqueName
=
"UnitPrice"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"QUANTITYORDERED"
DataType
=
"System.Int64"
HeaderText
=
"Qty Ordered"
SortExpression
=
"QUANTITYORDERED"
UniqueName
=
"QUANTITYORDERED"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"TotalCost"
DataType
=
"System.Double"
DataFormatString
=
"{0:c}"
HeaderText
=
"Total Cost"
ReadOnly
=
"True"
SortExpression
=
"TotalCost"
UniqueName
=
"TotalCost"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
AllowExpandCollapse
=
"true"
EnableRowHoverStyle
=
"true"
>
<
Selecting
AllowRowSelect
=
"True"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
</
td
>
</
tr
>
</
table
>
<
asp:SqlDataSource
ID
=
"SqlDsLineItem"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:ServiceDeskConnectionString %>"
SelectCommand="SELECT [LineItemNumber], [PartName], [PartNumber], [UnitPrice], [QUANTITYORDERED], [TotalCost] FROM [vw_Funding] WHERE ([PONumber] = @PONumber) ORDER BY [LineItemNumber]">
<
SelectParameters
>
<
asp:QueryStringParameter
Name
=
"PONumber"
QueryStringField
=
"id"
Type
=
"String"
/>
</
SelectParameters
>
</
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"SqlDsFunding"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:ServiceDeskConnectionString %>"
SelectCommand="SELECT FundingId, LineItemNumber, OperatingUnit, AccountNumber, Department, BudgetReference, AllocatedAmount, InsertedDate, InsertedBy, UpdatedDate, UpdatedBy FROM PurchaseOrderFunding WHERE (LineItemNumber = @LineItemNumber) ORDER BY LineItemNumber"
DeleteCommand="DELETE FROM [PurchaseOrderFunding] WHERE [FundingId] = @FundingId"
InsertCommand="INSERT INTO PurchaseOrderFunding(LineItemNumber, OperatingUnit, AccountNumber, Department, BudgetReference, AllocatedAmount, InsertedDate, InsertedBy, UpdatedDate, UpdatedBy) VALUES (@LineItemNumber, @OperatingUnit, @AccountNumber, @Department, @BudgetReference, @AllocatedAmount, GETDATE(), @InsertedBy, GETDATE(), @UpdatedBy)"
UpdateCommand="UPDATE PurchaseOrderFunding SET LineItemNumber = @LineItemNumber, OperatingUnit = @OperatingUnit, AccountNumber = @AccountNumber, Department = @Department, BudgetReference = @BudgetReference, AllocatedAmount = @AllocatedAmount, UpdatedDate = GETDATE(), UpdatedBy = @UpdatedBy WHERE (FundingId = @FundingId)" >
<
SelectParameters
>
<
asp:SessionParameter
Name
=
"LineItemNumber"
SessionField
=
"LineItemNumber"
Type
=
"Int32"
/>
</
SelectParameters
>
<
DeleteParameters
>
<
asp:Parameter
Name
=
"FundingId"
Type
=
"Int32"
/>
</
DeleteParameters
>
<
UpdateParameters
>
<
asp:Parameter
Name
=
"LineItemNumber"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"OperatingUnit"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"AccountNumber"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"Department"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"BudgetReference"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"AllocatedAmount"
Type
=
"Decimal"
/>
<
asp:SessionParameter
Name
=
"UpdatedBy"
Type
=
"String"
SessionField
=
"UserName"
/>
<
asp:Parameter
Name
=
"FundingId"
Type
=
"Int32"
/>
</
UpdateParameters
>
<
InsertParameters
>
<
asp:Parameter
Name
=
"LineItemNumber"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"OperatingUnit"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"AccountNumber"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"Department"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"BudgetReference"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"AllocatedAmount"
Type
=
"Decimal"
/>
<
asp:SessionParameter
Name
=
"InsertedBy"
Type
=
"String"
SessionField
=
"UserName"
/>
<
asp:SessionParameter
Name
=
"UpdatedBy"
Type
=
"String"
SessionField
=
"UserName"
/>
</
InsertParameters
>
</
asp:SqlDataSource
>
<
br
/>
<
asp:SqlDataSource
ID
=
"SqlDsOpUnit"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:ServiceDeskConnectionString %>"
ProviderName="<%$ ConnectionStrings:ServiceDeskConnectionString.ProviderName %>"
SelectCommand="SELECT DISTINCT operatingUnitId FROM PurchaseOrderOperatingUnit ORDER BY operatingUnitId">
</
asp:SqlDataSource
>
<
asp:SqlDataSource
ID
=
"SqlDsDept"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:ServiceDeskConnectionString %>"
SelectCommand="SELECT DISTINCT departmentId FROM PurchaseOrderDepartment ORDER BY departmentId">
</
asp:SqlDataSource
>
</
telerik:RadAjaxPanel
>
</
div
>
</
asp:Content
>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ponum.InnerHtml = Request.QueryString("id")
If Not IsPostBack Then
'Setting Selected index prior to binding RadGrid:
'If the index is in detail table, parent items will be expanded
'automatically
'RadGridFunding.SelectedIndexes.Add(1, 0, 1, 0, 1)
'Index of 1, 0, 1, 0, 0 means:
'1 - item with index 1 in MasterTableView
'0 - detail table with index 0
'1 - second (index 1) item in the detail table
'0 - 0 sub-detail
'1 - sub detail item with index 1
End If
End Sub
Protected Sub RadGridFunding_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadGridFunding.PreRender
If Not Page.IsPostBack Then
RadGridFunding.MasterTableView.Items(0).Expanded = False
'RadGridFunding.MasterTableView.Items(0).ChildItem.NestedTableViews(0).Items(0).Expanded = False
End If
End Sub
Protected Sub RadGridFunding_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RadGridFunding.ItemDataBound
If "Detail".Equals(e.Item.OwnerTableView.Name) Then
If (TypeOf e.Item Is GridEditFormInsertItem) Then
' hide the control in insert mode
If TypeOf e.Item Is GridEditFormInsertItem AndAlso e.Item.IsInEditMode Then
If e.Item.OwnerTableView.IsItemInserted Then
Dim edititem As GridEditFormInsertItem = DirectCast(e.Item, GridEditFormInsertItem)
edititem("LineItemNumber").Parent.Visible = False
End If
End If
End If
End If
End Sub
Private Sub RadGridFunding_PageIndexChanged(ByVal source As Object, ByVal e As Telerik.Web.UI.GridPageChangedEventArgs) Handles RadGridFunding.PageIndexChanged
RadGridFunding.Rebind()
RadGridFunding.Visible = True
End Sub
Protected Sub RadGridFunding_PageSizeChanged(ByVal source As Object, ByVal e As Telerik.Web.UI.GridPageSizeChangedEventArgs) Handles RadGridFunding.PageSizeChanged
RadGridFunding.Rebind()
RadGridFunding.Visible = True
End Sub
Protected Sub RadGridFunding_ItemUpdated(ByVal source As Object, ByVal e As Telerik.Web.UI.GridUpdatedEventArgs) Handles RadGridFunding.ItemUpdated
Dim item As String = getItemName(e.Item.OwnerTableView.Name)
Dim field As String = getFieldName(e.Item.OwnerTableView.Name)
If Not e.Exception Is Nothing Then
e.KeepInEditMode = True
e.ExceptionHandled = True
DisplayMessage(" " + item + " " + e.Item(field).Text + " Data cannot be updated. Reason: " + e.Exception.Message)
Else
DisplayMessage(" " + item + " " + e.Item(field).Text + " Data has been successfully updated.")
End If
End Sub
Protected Sub RadGridFunding_ItemInserted(ByVal source As Object, ByVal e As GridInsertedEventArgs) Handles RadGridFunding.ItemInserted
Dim item As String = getItemName(e.Item.OwnerTableView.Name)
Dim field As String = getFieldName(e.Item.OwnerTableView.Name)
If Not e.Exception Is Nothing Then
e.KeepInInsertMode = True
e.ExceptionHandled = True
DisplayMessage(" " + item + " " + e.Item(field).Text + " Data cannot be inserted. Reason: " + e.Exception.Message)
Else
DisplayMessage(" " + item + " " + e.Item(field).Text + " Data has been successfully inserted.")
End If
End Sub
Protected Sub RadGridFunding_InsertCommand(ByVal source As Object, ByVal e As GridCommandEventArgs) Handles RadGridFunding.InsertCommand
If "Detail".Equals(e.Item.OwnerTableView.Name) Then
Dim parentItem As GridDataItem = DirectCast(e.Item.OwnerTableView.ParentItem, GridDataItem)
SqlDsFunding.InsertParameters("LineItemNumber").DefaultValue = parentItem.OwnerTableView.DataKeyValues(parentItem.ItemIndex)("LineItemNumber").ToString()
End If
End Sub
Private Function getItemName(ByVal tableName As String) As String
Select Case tableName
Case ("Main")
Return "LineItemNumber"
Case ("Detail")
Return "LineItemNumber"
Case Else
Return ""
End Select
End Function
Private Function getFieldName(ByVal tableName As String) As String
Select Case tableName
Case ("Main")
Return "LineItemNumber"
Case ("Detail")
Return "LineItemNumber"
Case Else
Return ""
End Select
End Function
Private Sub DisplayMessage(ByVal text As String)
RadGridFunding.Controls.Add(New LiteralControl(String.Format("<
span
style
=
'color:red'
>{0}</
span
>", text)))
End Sub