I am always reluctant to use Netadvantage for ASP.NET controls when there already exist the same controls in VS2005 (i.e.: gridview, panel, tab). Although Infragistics controls are easier to use and has plenty of formatting options, the load that these controls add (JavaScript code in the resource file and styling images) push me away. I am not sure exactly how much it would increase the loading time or it would be noticeable for the user. I hope I am wrong
I definitely agree! When component vendors market their products as drop-in items to increase productivity they should work as such. If the learning curve is large and/or the components are fragile (buggy?) then the productivity gains quickly bleed away. We tried to use the scheduling components in a project (the reason we bought Infragistics) and ran into so many problems, missing features and performance issues that we abandoned it and hand-coded the app. I understand there will always be trade-offs when using components but as nmonge points out, there are other options where some of these issues have been addressed!
P.S. Anyone but me disappointed in the last 3 quarterly "updates"?
Chris, I appreciate your help on this forum, but I will definetevely not accept your comments above.
You know, when there is a product on sale, for which you pay, you expect this product to work as it is described, and when you plan to use specific functions you will expect to have access to a clear user guide documentation, not only to a very technical API help. When you buy a cell phone, you just dial the number, and wait for the answer, you don't have to guess, or try/error on different functions in order to make your call....This is what happening with the Infragistics solution, for which it seems that you are an expert on the matter. Also, let me remind you that I'm not the only one in this forum with this type of question. Just to compare, we took 15 minutes of our free time, connect a 50k record table to the Telerik/grid component using one of their samples, and guess what, it worked like a champion.
All this to let you know that the programming world is driven by an economic factor, and the reason why 90% of the companies decide to buy 3rd party controls is to save time and money...
Any way, thanks for your help...
PS: we did add some paging to my test page (again in our free time), and it seems to be much faster than before, but again, some weird things happened: 1.- when we apply a sort on a column, it is only sorting the data on the current page... 2.- it is still faster on Firefox......
http://42.autodev.2020.net/test/User/list.aspx
"I have ask my IT that without a 30 day money back warranty, to not buy any licence for this product...."This mentality is what is wrong with 90% of the companies today, everyone expects a 3rd party control to overcomeproblems with bad programming, logic and databases etc. I am seriously just to tired right now to argue on this subject and doubt I lack the required mental state at the moment to carry on a debate about it as well...
I just took 15mins away from something to drop the grid on a form and hook up a dummy database with 1000 records in it anddidn't do "any" optimizing at all and it works just fine, this demo is only slow because I have no indexes on the database I am notusing a storedProcedure and the web.config is still in debug... nor am I using any optimizing techniques like compression etc.http://www.visualstudiotutorials.com/help/gridtest/
Yes loadondemand has been implemented.
But again, we have here a big performance issue on Firefox, but on IE : is just unacceptable.
I have ask my IT that without a 30 day money back warranty, to not buy any licence for this product....
See our code:
using System;using System.Collections;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;
using Tech2020.w2020net.Model;using Tech2020.w2020net.BusinessLogicLayer;using System.Drawing;
public partial class Admin_User_list : System.Web.UI.Page{ private static Tech2020.w2020net.BusinessLogicLayer.User bal = new Tech2020.w2020net.BusinessLogicLayer.User();
private void Page_Init(object sender, System.EventArgs e) { this.EnableViewState = false; }
protected void Page_Load(object sender, EventArgs e) { this.UltraWebGrid1.InitializeLayout += new Infragistics.WebUI.UltraWebGrid.InitializeLayoutEventHandler(this.UltraWebGrid1_InitializeLayout); this.UltraWebGrid1.InitializeRow += new Infragistics.WebUI.UltraWebGrid.InitializeRowEventHandler(UltraWebGrid1_InitializeRow);
UltraWebGrid1.DisplayLayout.LoadOnDemand = Infragistics.WebUI.UltraWebGrid.LoadOnDemand.Automatic; IList<Tech2020.w2020net.Model.User> users; users = bal.GetUsers(-1); // status 0 == active And 1 == deleted in the ektron system
UltraWebGrid1.DataSource = users; UltraWebGrid1.DataBind(); }
void UltraWebGrid1_InitializeRow(object sender, Infragistics.WebUI.UltraWebGrid.RowEventArgs e) { e.Row.Cells[0].Text = "<a href=\"Edit.aspx?userID=" + e.Row.Cells[1].Text + "&TB_iframe=true&height=500&width=650&modal=true\" class=\"thickbox\">Edit</a>"; }
private void UltraWebGrid1_InitializeLayout(object sender, Infragistics.WebUI.UltraWebGrid.LayoutEventArgs e) { /*UltraWebGrid1.DisplayLayout.Bands[0].Columns[0].Header.Caption = ""; UltraWebGrid1.DisplayLayout.Bands[0].Columns[1].Header.Caption = "ID"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[2].Header.Caption = "First name"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[3].Header.Caption = "Last name"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[4].Header.Caption = "Email"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[5].Header.Caption = "Member"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[6].Header.Caption = "Active"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[7].Header.Caption = "Last login"; UltraWebGrid1.DisplayLayout.Bands[0].Columns[8].Header.Caption = "Edited on"; */ UltraWebGrid1.Columns[0].CellStyle.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.Columns[0].CellStyle.VerticalAlign = VerticalAlign.Middle; UltraWebGrid1.Columns[8].CellStyle.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.Columns[8].CellStyle.VerticalAlign = VerticalAlign.Middle; UltraWebGrid1.Columns[9].CellStyle.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.Columns[9].CellStyle.VerticalAlign = VerticalAlign.Middle;
UltraWebGrid1.DisplayLayout.Bands[0].Columns[8].Header.Style.HorizontalAlign = HorizontalAlign.Center; UltraWebGrid1.DisplayLayout.Bands[0].Columns[9].Header.Style.HorizontalAlign = HorizontalAlign.Center;
UltraWebGrid1.Columns[0].Width = 75; }
protected void CreateColumn(DataTable dt, string type, string name) { DataColumn dc;
dc = new DataColumn(); dc.DataType = Type.GetType(type); dc.ColumnName = name; dt.Columns.Add(dc); }}
Do you have loadondemand on the demo link above? because it isn't doing loadondemand much better file size now though