Hi,
I'm have a UltraWebGrid that holds, lets say, 2000 records. One column is bool data type. When I click on an image from the column header I try to check/uncheck all checkboxes on the entire column.
First time when I click on the header it takes 10-12 secs to complete the task. Any other attempt takes 1-2 secs. This is happening only for IE, in Firefox everything works just fine.
For tests I'm using an grid without any other feature like sorting, column moving, etc.
Here is the script I use on the client side:
<script type="text/javascript"> function f() { var grid = igtbl_getGridById("UltraWebGrid1"); for(var i = 0; i < grid.Rows.length; i++) { var val = grid.Rows.getRow(i).getCell(2).getValue() grid.Rows.getRow(i).getCell(2).setValue(!val); } } </script>
Here is the the server side code use to bind the grid data:
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { UltraWebGrid1.InitializeLayout += new Infragistics.WebUI.UltraWebGrid.InitializeLayoutEventHandler(UltraWebGrid1_InitializeLayout);
UltraWebGrid1.DataSource = GetData(); UltraWebGrid1.DataBind(); }
void UltraWebGrid1_InitializeLayout(object sender, Infragistics.WebUI.UltraWebGrid.LayoutEventArgs e) { e.Layout.Bands[0].Columns[2].Header.Caption = "<img src='Jellyfish.jpg' onclick='f();' style='width:30px;height:20px;' />"; }
private DataTable GetData() { DataTable result = new DataTable();
result.Columns.Add(new DataColumn("ID", typeof(int))); result.Columns.Add(new DataColumn("Name", typeof(string))); result.Columns.Add(new DataColumn("Req", typeof(bool)));
for (int i = 1; i < 2000; i++) { DataRow row = result.NewRow();
row["ID"] = i; row["Name"] = "Name" + i.ToString(); row["Req"] = false; result.Rows.Add(row); }
return result; } }
Thank you in advance,
razvan
Hi razvan,
I am attaching a sample using version 10.3 which uses a button to iterate through the grid rows and change each cell's value. An alert is displayed at the end of the client side handler with the number of miliseconds it took to iterate through the rows so that you can see how long it is taking to iterate through the rows. Note that this grid has only its basic features enabled and is bound to a datatable.
Best Regards,
Petar IvanovDeveloper Support EngineerInfragistics, Inc.http://es.infragistics.com/support
The sample is already in the post no. 1. On the client side the attemps to get references to rows as Ingragistics objects like "grid.Rows.getRow(i)" take to much time if there are a lot of data bound in the grid.
If you can provide me with some sample illustrating the issues you have described I would be glad to investigate them. Feel free to contact me with any additional questions.
I've rewrite the script function to use only HTML DOM instead of Infragistics DOM and the iteration through the entire rows collections completes in 1-2 secs.
Also noticed the built in script event handlers mousemove and mouseover make sometimes the grid less responsive for couple of secs.
Thank you for your reply.
There are multiple discussions on UltraWebGrid performance in IE. I would suggest that you take a look at the following ones for more information and suggestions:
https://es.infragistics.com/community/forums/f/retired-products-and-controls/4925/ultrawebgrid-performance-is-degraded-on-ie-compared-to-firefox
https://es.infragistics.com/community/forums/f/retired-products-and-controls/10840/webgrid-sorting-loading-time-in-ie-vs-firefox
Feel free to contact me if you have any questions.
Petar IvanovDeveloper Support EngineerInfragistics, Inc.https://es.infragistics.com/support