I have the following code binding to an array of objects. It's incredibly slow binding around 3000 objects. But, if I take out the empty template column, it works fine and is fast. HELP!
<igtbl:UltraWebGrid ID="grdLocations" runat="server" OnDblClick="grdLocations_DblClick" Width="620px" oninitializedatasource="grdLocations_InitializeDataSource"> <Bands> <igtbl:UltraGridBand> <Columns> <igtbl:UltraGridColumn BaseColumnName="ID" Key="ID" Hidden="true" Width="5%"> <Header Caption="ID"> </Header> </igtbl:UltraGridColumn> <igtbl:UltraGridColumn BaseColumnName="Name" Width="20%"> <Header Caption="Location Name"> <RowLayoutColumnInfo OriginX="1" /> </Header> <Footer> <RowLayoutColumnInfo OriginX="1" /> </Footer> </igtbl:UltraGridColumn> <igtbl:UltraGridColumn BaseColumnName="Company" Key="Company" Width="20%"> <Header Caption="Company"> <RowLayoutColumnInfo OriginX="2" /> </Header> <Footer> <RowLayoutColumnInfo OriginX="2" /> </Footer> </igtbl:UltraGridColumn> <igtbl:TemplatedColumn BaseColumnName="Phone" Width="30%"> <Header Caption="Address"> <RowLayoutColumnInfo OriginX="3" /> </Header> <CellTemplate></CellTemplate> </igtbl:TemplatedColumn> <igtbl:UltraGridColumn BaseColumnName="Phone" Key="Phone" Width="15%"> <Header Caption="Phone"> <RowLayoutColumnInfo OriginX="4" /> </Header> <Footer> <RowLayoutColumnInfo OriginX="4" /> </Footer> </igtbl:UltraGridColumn> </Columns> <RowEditTemplate> <br> <p align="center"> <input id="igtbl_reOkBtn" onclick="igtbl_gRowEditButtonClick(event);" style="width: 50px;" type="button" value="OK"> <input id="igtbl_reCancelBtn" onclick="igtbl_gRowEditButtonClick(event);" style="width: 50px;" type="button" value="Cancel"> </input> </input> </p> </br> </RowEditTemplate> <RowTemplateStyle BackColor="White" BorderColor="White" BorderStyle="Ridge"> <BorderDetails WidthBottom="3px" WidthLeft="3px" WidthRight="3px" WidthTop="3px" /> </RowTemplateStyle> <AddNewRow Visible="NotSet" View="NotSet"> </AddNewRow> </igtbl:UltraGridBand> </Bands> <displaylayout AllowColSizingDefault="Free" AllowSortingDefault="Yes" AutoGenerateColumns="False" BorderCollapseDefault="Separate" CellClickActionDefault="RowSelect" HeaderClickActionDefault="SortSingle" Name="UltraWebGrid1" RowHeightDefault="21px" StationaryMarginsOutlookGroupBy="True" TableLayout="Fixed" Version="3.00" RowSelectorsDefault="No" SelectTypeRowDefault="Single"> <FrameStyle BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt" Width="700px" Height="240px"> </FrameStyle> <Pager AllowPaging="True" PageSize="20" StyleMode="PrevNext"> </Pager> <EditCellStyleDefault BorderStyle="None" BorderWidth="0px"> </EditCellStyleDefault> <FooterStyleDefault BackColor="LightGray" BorderStyle="Solid" BorderWidth="1px"> <BorderDetails ColorLeft="White" ColorTop="White" WidthLeft="1px" WidthTop="1px" /> </FooterStyleDefault> <HeaderStyleDefault BackColor="#11459E" BorderStyle="Solid" CustomRules="background-image:url(/ig_common/images/Office2003BlueBG.png);background-repeat:repeat-x;" Font-Bold="True" Font-Names="Arial" Font-Size="X-Small" ForeColor="#E1E8F5"> <BorderDetails ColorLeft="173, 197, 235" ColorTop="173, 197, 235" WidthLeft="1px" WidthTop="1px" /> </HeaderStyleDefault> <RowStyleDefault BackColor="Window" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt"> <Padding Left="3px" /> <BorderDetails ColorLeft="Window" ColorTop="Window" /> </RowStyleDefault> <SelectedRowStyleDefault BackColor="#F09D21" CustomRules="background-image:url(/ig_common/images/Office2003SelRow.png);background-repeat:repeat-x;" ForeColor="White"> </SelectedRowStyleDefault> <ActivationObject BorderColor="" BorderWidth=""> </ActivationObject> <FilterOptionsDefault> <FilterDropDownStyle BackColor="White" BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px" CustomRules="overflow:auto;" Font-Names="Verdana,Arial,Helvetica,sans-serif" Font-Size="11px" Width="200px"> <Padding Left="2px" /> </FilterDropDownStyle> <FilterHighlightRowStyle BackColor="#151C55" ForeColor="White"> </FilterHighlightRowStyle> <FilterOperandDropDownStyle BackColor="White" BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px" CustomRules="overflow:auto;" Font-Names="Verdana,Arial,Helvetica,sans-serif" Font-Size="11px"> <Padding Left="2px" /> </FilterOperandDropDownStyle> </FilterOptionsDefault> </DisplayLayout> </igtbl:UltraWebGrid>
darthg8r said:<input id="igtbl_reOkBtn" onclick="igtbl_gRowEditButtonClick(event);" style="width: 50px;" type="button" value="OK"> <input id="igtbl_reCancelBtn" onclick="igtbl_gRowEditButtonClick(event);" style="width: 50px;" type="button" value="Cancel"> </input> </input>
I doubt this has anything to do with your original question, but this looks to me like you're putting a button inside a button.
It might be helpful to post the code you use to populate the grid.
Hi all,
I have encountered the same problem.
When I removed <CellTemplate></CellTemplate>, the speed is fast ( < 10s ).
However, with a empty <CellTemplate></CellTemplate>, it takes more than 5 mins, and i can see the CPU is running at peak.
Indeed, I am able to confirm that. By just adding one single template column the grid becomes much slower.
I will double check with the dev team why this happens - I am not sure it is a bug - this could be an ASP.NET framework limitation issue (e.g. instantiating templates is an operation that requires a lot of resources).
Just adding the following template column in the grid changed the loading time of grid from 1 sec to about minutes for 3500 rows.
<igtbl:TemplatedColumn AllowUpdate="No" AllowRowFiltering="false"> <Header Caption="" /> <CellTemplate> <asp:Image ID="btnDelete" runat="server" ImageUrl="~/Images/gridDelete.gif" ToolTip="Delete" BorderWidth="0" /> </CellTemplate> <CellStyle BackColor="#c2d7f5" BorderWidth="0" Width="10px"></CellStyle></igtbl:TemplatedColumn>
I am having the same problem with UltraWebGrid version 2010.3. Does anyone have any work arounds?
Hello,
I'm having exactly the same problem. Working with 2008.3. With thousands of records, when I add any kind of TemplatedColumn the performance is simply unacceptable.
Any ideas on what could be the problem or if this will be fixed? If not I'll have to use another control as well.
Sorry to hear this is happening to you as well.
We eventually just dropped Infragistics grid control completely and went with another companies, which ended up being much, much faster and was able to handle 1500+ rows in less than a second and do what we wanted it to do.
Wish I could give you a solution for this.
Thanks.
Which version are you using? I am testing with the latest release (2008.3) with this setup (3000 rows, 3 columns, the very same DisplayLayout) and it is quite fast for me (1-2 seconds on localhost)
<igtbl:UltraWebGrid ID="UltraWebGrid1" runat="server"> <Bands> <igtbl:UltraGridBand> <Columns> <igtbl:UltraGridColumn Type="Custom" Key="Key1" DataType="System.String"></igtbl:UltraGridColumn> <igtbl:UltraGridColumn Type="Custom" Key="Key2" DataType="System.String"></igtbl:UltraGridColumn> <igtbl:TemplatedColumn> <CellTemplate> <%# Eval("Key3") %> </CellTemplate> </igtbl:TemplatedColumn> </Columns> </igtbl:UltraGridBand> </Bands> <displaylayout AllowColSizingDefault="Free" AllowSortingDefault="Yes" AutoGenerateColumns="False" BorderCollapseDefault="Separate" CellClickActionDefault="RowSelect" HeaderClickActionDefault="SortSingle" Name="UltraWebGrid1" RowHeightDefault="21px" StationaryMarginsOutlookGroupBy="True" TableLayout="Fixed" Version="3.00" RowSelectorsDefault="No" SelectTypeRowDefault="Single"> <FrameStyle BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt" Width="700px" Height="240px"> </FrameStyle> <EditCellStyleDefault BorderStyle="None" BorderWidth="0px"> </EditCellStyleDefault> <FooterStyleDefault BackColor="LightGray" BorderStyle="Solid" BorderWidth="1px"> <BorderDetails ColorLeft="White" ColorTop="White" WidthLeft="1px" WidthTop="1px" /> </FooterStyleDefault> <HeaderStyleDefault BackColor="#11459E" BorderStyle="Solid" CustomRules="background-image:url(/ig_common/images/Office2003BlueBG.png);background-repeat:repeat-x;" Font-Bold="True" Font-Names="Arial" Font-Size="X-Small" ForeColor="#E1E8F5"> <BorderDetails ColorLeft="173, 197, 235" ColorTop="173, 197, 235" WidthLeft="1px" WidthTop="1px" /> </HeaderStyleDefault> <RowStyleDefault BackColor="Window" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt"> <Padding Left="3px" /> <BorderDetails ColorLeft="Window" ColorTop="Window" /> </RowStyleDefault> <SelectedRowStyleDefault BackColor="#F09D21" CustomRules="background-image:url(/ig_common/images/Office2003SelRow.png);background-repeat:repeat-x;" ForeColor="White"> </SelectedRowStyleDefault> <ActivationObject BorderColor="" BorderWidth=""> </ActivationObject> <FilterOptionsDefault> <FilterDropDownStyle BackColor="White" BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px" CustomRules="overflow:auto;" Font-Names="Verdana,Arial,Helvetica,sans-serif" Font-Size="11px" Width="200px"> <Padding Left="2px" /> </FilterDropDownStyle> <FilterHighlightRowStyle BackColor="#151C55" ForeColor="White"> </FilterHighlightRowStyle> <FilterOperandDropDownStyle BackColor="White" BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px" CustomRules="overflow:auto;" Font-Names="Verdana,Arial,Helvetica,sans-serif" Font-Size="11px"> <Padding Left="2px" /> </FilterOperandDropDownStyle> </FilterOptionsDefault> </DisplayLayout> </igtbl:UltraWebGrid> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { UltraWebGrid1.DataSource = GetData(); UltraWebGrid1.DataBind(); } } protected DataTable GetData() { DataTable dt = new DataTable(); dt.Columns.Add("Key1"); dt.Columns.Add("Key2"); dt.Columns.Add("Key3"); for (int i = 0; i < 3000; i++) { dt.Rows.Add(new object[] { "1", "2", "3" }); } return dt; }