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>
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; }