Brian Taylor
Top achievements
Rank 1
Brian Taylor
asked on 02 Feb 2011, 06:44 PM
Hi,
I had a small RadGrid with 25 columns and 17 rows.
It took 11.5 secounds for the .databind to complete after the data sourse selected event fired.
The grid has 17 coulms set to not visible.
6 Answers, 1 is accepted
0
Brian Taylor
Top achievements
Rank 1
answered on 03 Feb 2011, 01:22 PM
The issue was that the 17 columns that were not visible were databound and the fields did not exist in the SQL statement.Adding " Null As u4" .. ", Null As u20" to the SQL statement fixed this.I would expect the grid to fail to bind if the field was not in the datasource, is this a bug?
If that is not a bug, the performance hit it causes must be a bug.
If that is not a bug, the performance hit it causes must be a bug.
0
Hello Brian,
I followed your steps but was not able to replicate the performance issue. Can you elaborate a bit more on your scenario? What are the grid columns and how do you hide them, setting the Visible or the Display property to false?
Additionally, RadGrid displays/has the columns you defined into its Columns collection and displays what is coming from its data source. If there is a column bound to non-existing data field, the column for it is created but does not display any data.
Regards,
Iana
the Telerik team
I followed your steps but was not able to replicate the performance issue. Can you elaborate a bit more on your scenario? What are the grid columns and how do you hide them, setting the Visible or the Display property to false?
Additionally, RadGrid displays/has the columns you defined into its Columns collection and displays what is coming from its data source. If there is a column bound to non-existing data field, the column for it is created but does not display any data.
Regards,
Iana
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
Najid Hanif
Top achievements
Rank 2
answered on 28 Aug 2014, 07:29 PM
I just ran into this issue as well. Spent most of the morning tracking it down to this. When a column is defined in the grid but the DataField does not exist in the datasource it takes a massive performance hit. 75 rows takes about 15 secs and the SQL query only takes .115 milli secs. I had a grid with a column Display="false" and the DataField had a typo so it was hard to know what was going on.
Here is how my grid and page is defined if that helps. I would much rather have had the grid produce an error than do what it is doing now. If this is a 'feature' then it needs to way faster.
Here is how my grid and page is defined if that helps. I would much rather have had the grid produce an error than do what it is doing now. If this is a 'feature' then it needs to way faster.
<%@ Page Title="Release Queue" Language="C#" MasterPageFile="~/Shared/EAM.Master" AutoEventWireup="true" CodeBehind="ReleaseQueue2.aspx.cs" Inherits="EAM_Site.ReleaseQueue2" %>
<%@ Register Src="Shared/MyOpenIssues.ascx" TagName="MyOpenIssuesGrid_UC" TagPrefix="uc" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"headerInc"
runat
=
"server"
></
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"BodyPlaceHolder"
runat
=
"server"
>
<
div
style
=
"margin-top: 5px; float: left; width:1200px;"
>
<
table
style
=
"width:1200px;"
>
<
tr
>
<
td
>
<
table
style
=
"width:400px;"
>
<
tr
>
<
td
colspan
=
"3"
style
=
"position: relative; top: -20px;"
>
<
span
>
<
telerik:RadButton
ID
=
"RadButtonViewPQ"
runat
=
"server"
NavigateUrl
=
"~/PqQueue.aspx"
Text
=
"PreQual Queue"
AutoPostBack
=
"False"
CausesValidation
=
"False"
Width
=
"100px"
ButtonType
=
"LinkButton"
></
telerik:RadButton
>
<
telerik:RadButton
ID
=
"RadButtonReleaseQueue"
runat
=
"server"
NavigateUrl
=
"~/ReleaseQueue2.aspx"
Text
=
"Release Queue"
AutoPostBack
=
"False"
CausesValidation
=
"False"
Width
=
"100px"
ButtonType
=
"LinkButton"
BorderColor
=
"Red"
BorderStyle
=
"Dotted"
BorderWidth
=
"2"
></
telerik:RadButton
>
<
telerik:RadButton
ID
=
"RadButtonAllRequests"
runat
=
"server"
NavigateUrl
=
"~/AllRequestsQueue.aspx"
Text
=
"All Requests"
AutoPostBack
=
"False"
CausesValidation
=
"False"
Width
=
"100px"
ButtonType
=
"LinkButton"
></
telerik:RadButton
>
</
span
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
telerik:RadComboBox
ID
=
"AssignedToComboBox"
runat
=
"server"
AutoPostBack
=
"True"
Label
=
"Assigned To:"
Width
=
"150px"
Height
=
"125px"
AppendDataBoundItems
=
"true"
></
telerik:RadComboBox
>
</
td
>
<
td
>
<
telerik:RadComboBox
ID
=
"StatusListComboBox"
runat
=
"server"
AutoPostBack
=
"True"
Label
=
"Status:"
Width
=
"150px"
Height
=
"125px"
AppendDataBoundItems
=
"true"
></
telerik:RadComboBox
>
</
td
>
</
tr
>
<
tr
>
<
td
class
=
"Office2010Text"
colspan
=
"3"
>
<
asp:Literal
ID
=
"CountControl"
runat
=
"server"
Text
=
""
></
asp:Literal
>
</
td
>
</
tr
>
</
table
>
</
td
>
<
td
>
<
table
style
=
"width:600px;"
>
<
tr
>
<
td
>
<
uc:MyOpenIssuesGrid_UC
id
=
"MyOpenIssuesGrid_ID"
runat
=
"server"
/>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
div
>
<
br
/> <%--OnItemCreated="QGrid_ItemCreated"--%>
<
div
style
=
"margin-top: 10px; display:block;"
>
<
br
/>
<
telerik:RadGrid
ID
=
"RMQueue2Grid"
runat
=
"server"
CellSpacing
=
"0"
DataSourceID
=
"RM_GetGenBSInfoForRMQueue_DS"
Width
=
"100%"
AutoGenerateColumns
=
"False"
AllowFilteringByColumn
=
"True"
AllowSorting
=
"True"
EnableHeaderContextMenu
=
"True"
EnableHeaderContextFilterMenu
=
"True"
EnableHeaderContextAggregatesMenu
=
"True"
MasterTableView-AllowPaging
=
"True"
AllowPaging
=
"True"
GridLines
=
"None"
PageSize
=
"1000"
>
<
ClientSettings
AllowDragToGroup
=
"True"
></
ClientSettings
>
<
MasterTableView
CommandItemDisplay
=
"Top"
>
<
PagerStyle
AlwaysVisible
=
"true"
/>
<
CommandItemSettings
ShowAddNewRecordButton
=
"False"
ShowRefreshButton
=
"True"
></
CommandItemSettings
>
<
ColumnGroups
>
<
telerik:GridColumnGroup
HeaderText
=
"Release"
Name
=
"HeaderRelease"
HeaderStyle-HorizontalAlign
=
"Center"
></
telerik:GridColumnGroup
>
<
telerik:GridColumnGroup
HeaderText
=
"Review Tasks"
Name
=
"HeaderTasks"
HeaderStyle-HorizontalAlign
=
"Center"
></
telerik:GridColumnGroup
>
<
telerik:GridColumnGroup
HeaderText
=
"Automation Form"
Name
=
"HeaderAutomationForm"
HeaderStyle-HorizontalAlign
=
"Center"
ParentGroupName
=
"HeaderTasks"
></
telerik:GridColumnGroup
>
<
telerik:GridColumnGroup
HeaderText
=
"Request Info"
Name
=
"HeaderRequestInfo"
HeaderStyle-HorizontalAlign
=
"Center"
></
telerik:GridColumnGroup
>
</
ColumnGroups
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"RM_ID"
DataType
=
"System.Int32"
Display
=
"false"
ReadOnly
=
"True"
UniqueName
=
"RM_ID"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"LCM_ID"
DataType
=
"System.Int32"
Display
=
"false"
ReadOnly
=
"True"
UniqueName
=
"LCM_ID"
></
telerik:GridBoundColumn
>
<
telerik:GridHyperLinkColumn
DataNavigateUrlFields
=
"RM_ID"
DataNavigateUrlFormatString
=
"~/ReleaseSoftwareRequirements.aspx?RM_ID={0}&Tab=EAM"
DataTextField
=
"AssetDescription"
HeaderText
=
"Application"
SortExpression
=
"AssetDescription"
UniqueName
=
"SWREQsURL"
AllowSorting
=
"True"
ColumnGroupName
=
"HeaderRequestInfo"
Target
=
"_blank"
></
telerik:GridHyperLinkColumn
>
<
telerik:GridBoundColumn
DataField
=
"Version"
HeaderText
=
"Version"
SortExpression
=
"Version"
UniqueName
=
"Version"
ColumnGroupName
=
"HeaderRequestInfo"
></
telerik:GridBoundColumn
>
<
telerik:GridHyperLinkColumn
AllowFiltering
=
"False"
DataNavigateUrlFields
=
"LCM_ID"
DataNavigateUrlFormatString
=
"http://lcm.us.bank-dns.com/ASPX_Pages/LCM_Main_Links/Application_Detail/Application_Detail_View.aspx?upid={0}"
DataTextField
=
"LinkID"
HeaderText
=
"LinkID"
SortExpression
=
"LinkID"
Target
=
"_blank"
UniqueName
=
"LCMURL"
ColumnGroupName
=
"HeaderRequestInfo"
></
telerik:GridHyperLinkColumn
>
<
telerik:GridBoundColumn
Display
=
"False"
DataField
=
"FullName"
HeaderText
=
"Assigned To"
SortExpression
=
"FullName"
UniqueName
=
"FullName"
ColumnGroupName
=
"HeaderRequestInfo"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Display
=
"False"
DataField
=
"Status"
HeaderText
=
"Status"
SortExpression
=
"Status"
UniqueName
=
"Status"
ColumnGroupName
=
"HeaderRequestInfo"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Display
=
"true"
DataField
=
"NumberNeededFor"
AllowFiltering
=
"False"
HeaderText
=
"#"
SortExpression
=
"NumberNeededFor"
UniqueName
=
"NumberNeededFor"
ColumnGroupName
=
"HeaderRequestInfo"
HeaderStyle-Width
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridHyperLinkColumn
AllowFiltering
=
"True"
DataNavigateUrlFields
=
"email,AssetDescription,Version"
DataNavigateUrlFormatString
=
"mailto:{0}?Subject={1} - {2}"
DataTextField
=
"NameFirstMiLast"
HeaderText
=
"Requestor"
SortExpression
=
"NameFirstMiLast"
Target
=
"_blank"
UniqueName
=
"Requestor"
ColumnGroupName
=
"HeaderRequestInfo"
></
telerik:GridHyperLinkColumn
>
<
telerik:GridBoundColumn
DataField
=
"Request_ID"
HeaderText
=
"Request_ID"
SortExpression
=
"Request_ID"
UniqueName
=
"Request_ID"
ColumnGroupName
=
"HeaderRequestInfo"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Display
=
"False"
DataField
=
"Date_Opened"
HeaderText
=
"Opened"
DataType
=
"System.DateTime"
DataFormatString
=
"{0:d}"
ReadOnly
=
"True"
UniqueName
=
"Date_Opened"
SortExpression
=
"Date_Opened"
ColumnGroupName
=
"HeaderRequestInfo"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Display
=
"True"
DataField
=
"ProcessName"
HeaderText
=
"ProcessName"
SortExpression
=
"ProcessName"
UniqueName
=
"ProcessName"
ColumnGroupName
=
"HeaderRequestInfo"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Display
=
"True"
DataField
=
"GroupName"
HeaderText
=
"GroupName"
SortExpression
=
"GroupName"
UniqueName
=
"GroupName"
ColumnGroupName
=
"HeaderRequestInfo"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
Display
=
"False"
DataField
=
"WEQAssignedDate"
HeaderText
=
"WEQAssignedDate"
DataType
=
"System.DateTime"
DataFormatString
=
"{0:d}"
ReadOnly
=
"True"
UniqueName
=
"WEQAssignedDate"
SortExpression
=
"WEQAssignedDate"
ColumnGroupName
=
"HeaderRequestInfo"
></
telerik:GridBoundColumn
>
<
telerik:GridHyperLinkColumn
DataNavigateUrlFields
=
"RM_ID"
AllowFiltering
=
"False"
DataNavigateUrlFormatString
=
"~/EmailsSentForFormHistory.aspx?RM_ID={0}"
DataTextField
=
"SentForFormCnt"
HeaderText
=
"#"
SortExpression
=
"SentForFormCnt"
UniqueName
=
"SentForFormCnt"
AllowSorting
=
"True"
ColumnGroupName
=
"HeaderAutomationForm"
Target
=
"_Blank"
></
telerik:GridHyperLinkColumn
>
<
telerik:GridCheckBoxColumn
DataField
=
"FormIsComplete"
DataType
=
"System.Boolean"
HeaderText
=
"Done"
SortExpression
=
"FormIsComplete"
UniqueName
=
"FormIsComplete"
ColumnGroupName
=
"HeaderAutomationForm"
></
telerik:GridCheckBoxColumn
>
<
telerik:GridCheckBoxColumn
DataField
=
"TestersAreComplete"
DataType
=
"System.Boolean"
HeaderText
=
"Testers"
SortExpression
=
"TestersAreComplete"
UniqueName
=
"TestersAreComplete"
ColumnGroupName
=
"HeaderTasks"
></
telerik:GridCheckBoxColumn
>
<
telerik:GridCheckBoxColumn
DataField
=
"EAMFormIsComplete"
DataType
=
"System.Boolean"
HeaderText
=
"EAM"
SortExpression
=
"EAMFormIsComplete"
UniqueName
=
"EAMFormIsComplete"
ColumnGroupName
=
"HeaderTasks"
></
telerik:GridCheckBoxColumn
>
<
telerik:GridCheckBoxColumn
DataField
=
"isApproved"
DataType
=
"System.Boolean"
HeaderText
=
"Approved"
SortExpression
=
"isApproved"
UniqueName
=
"isApproved"
ColumnGroupName
=
"HeaderTasks"
></
telerik:GridCheckBoxColumn
>
<
telerik:GridBoundColumn
DataField
=
"WorkFlowStatusName"
HeaderText
=
"WorkFlow"
SortExpression
=
"WorkFlowStatusName"
UniqueName
=
"WorkFlowStatusName"
ColumnGroupName
=
"HeaderRelease"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ReleaseName"
HeaderText
=
"ReleaseName"
SortExpression
=
"ReleaseName"
UniqueName
=
"ReleaseName"
ColumnGroupName
=
"HeaderRelease"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PlannedPilotDate"
HeaderText
=
"PlannedPilot"
DataType
=
"System.DateTime"
DataFormatString
=
"{0:d}"
Display
=
"True"
ReadOnly
=
"True"
UniqueName
=
"PlannedPilotDate"
SortExpression
=
"PlannedPilotDate"
ColumnGroupName
=
"HeaderRelease"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"RFC"
HeaderText
=
"RFC"
SortExpression
=
"RFC"
UniqueName
=
"RFC"
ColumnGroupName
=
"HeaderRelease"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Developer"
HeaderText
=
"Developer"
SortExpression
=
"Developer"
UniqueName
=
"Developer"
ColumnGroupName
=
"HeaderRelease"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Riddler"
HeaderText
=
"Riddler"
SortExpression
=
"Riddlerr"
UniqueName
=
"Riddler"
ColumnGroupName
=
"HeaderRelease"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"QA_Monitor"
HeaderText
=
"QA_Monitor"
SortExpression
=
"QA_Monitor"
UniqueName
=
"QA_Monitor"
ColumnGroupName
=
"HeaderRelease"
FilterControlWidth
=
"50px"
></
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
EnableAJAX
=
"true"
DefaultLoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"AssignedToComboBox"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RMQueue2Grid"
LoadingPanelID
=
"AjaxLoadingPanel1"
></
telerik:AjaxUpdatedControl
>
<
telerik:AjaxUpdatedControl
ControlID
=
"AssignedToComboBox"
></
telerik:AjaxUpdatedControl
>
<
telerik:AjaxUpdatedControl
ControlID
=
"CountControl"
></
telerik:AjaxUpdatedControl
>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"StatusListComboBox"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RMQueue2Grid"
LoadingPanelID
=
"AjaxLoadingPanel1"
></
telerik:AjaxUpdatedControl
>
<
telerik:AjaxUpdatedControl
ControlID
=
"StatusListComboBox"
></
telerik:AjaxUpdatedControl
>
<
telerik:AjaxUpdatedControl
ControlID
=
"CountControl"
></
telerik:AjaxUpdatedControl
>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
></
telerik:RadAjaxLoadingPanel
>
<
asp:SqlDataSource
SelectCommand
=
"RM_GetGenBSInfoForRMQueue"
SelectCommandType
=
"StoredProcedure"
ConnectionString="<%$ ConnectionStrings:PreQual_Transient %>" ProviderName="System.Data.SqlClient" ID="RM_GetGenBSInfoForRMQueue_DS" runat="server">
<
SelectParameters
>
<
asp:ControlParameter
Name
=
"UserID"
PropertyName
=
"SelectedValue"
ControlID
=
"AssignedToComboBox"
></
asp:ControlParameter
>
<
asp:ControlParameter
Name
=
"StatusID"
PropertyName
=
"SelectedValue"
ControlID
=
"StatusListComboBox"
></
asp:ControlParameter
>
</
SelectParameters
>
</
asp:SqlDataSource
>
</
asp:Content
>
<
asp:Content
ID
=
"Content3"
ContentPlaceHolderID
=
"footerInc"
runat
=
"server"
></
asp:Content
>
0
Hello Najid,
I have tested similar scenario on my end with our latest version, but I was not able to replicate such slow performance.
Could you please elaborate on which version of our controls you are using, so we can test it locally with the exact version, while trying to replicate the same issue.
I am looking forward to your reply.
Regards,
Konstantin Dikov
Telerik
I have tested similar scenario on my end with our latest version, but I was not able to replicate such slow performance.
Could you please elaborate on which version of our controls you are using, so we can test it locally with the exact version, while trying to replicate the same issue.
I am looking forward to your reply.
Regards,
Konstantin Dikov
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.
0
Najid Hanif
Top achievements
Rank 2
answered on 02 Sep 2014, 03:20 PM
I have I have opened up a support ticket (ticket ID is: 855576) so you can see the issue in action with a captured video. I did not want to post it publicly.
Thanks
Thanks
0
Hello Najid,
Since the issue seems to be specific to your exact scenario, for both sides convenience I suggest that you continue the communication in the support ticket.
Regards,
Konstantin Dikov
Telerik
Since the issue seems to be specific to your exact scenario, for both sides convenience I suggest that you continue the communication in the support ticket.
Regards,
Konstantin Dikov
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.