Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
907
WinTree performance versus 2005 version is horrible
posted
I have a couple of pop-up editors that use the win tree control that load up 100-200 rows and on my desktop takes about 3 seconds to load.  On some of the test laptops they can take 30 seconds to load.  I just upgraded to 2008, the 1st version that doesn't have event conflict errors with our host designer and my pop-up editors on my desktop ate taking 90-110 seconds to load.  I am building out the nodes manually, to give you an idea what a portion of this looks like, I'll include a couple functions below...  Any idea what might be causing the creation of a node to take to fricken long?

private void AddFields(UltraTreeNode node, Field field, int depth) {

if (field.Child == null) {

ConfigureFieldNode(node.Nodes.Add(), field);

}
else {AddRecord(node, field.Child, field, false, depth);

}

}

 

private void ConfigureRecordNode(UltraTreeNode node, Field parentField, Record record,
bool referring, int depth)

{

string parentName = "";

if (parentField != null) {

parentName = parentField.Name;

}

string name = MaskUtil.BuildMaskRecordDisplayName(record.Name, parentName, referring);

node.Cells["Selected"].Value = false;

node.Cells["Name"].Value = name;

node.Cells["Name"].Tag = parentField; // Just needed a spot to store this.

node.Cells["DataType"].Value = "Record";

node.Cells["DataType"].Tag = referring; // Just needed a spot to store this.

node.Cells["Reference"].Value = record.TableLocationName;

node.Cells["CascadeAdd"].Value = false;

node.Cells["CascadeDelete"].Value = false;

node.Cells["Name"].Appearance.FontData.Bold = DefaultableBoolean.True;

if (parentField == null) {

node.Cells["CascadeAdd"].Value = null;

node.Cells["CascadeDelete"].Value = null;

}

node.Tag = record;

//

// If we have a child referring table, we need to set its visibility.

// We always show the referring tables for the main record.

//

if (referring && depth > 1) {

node.Visible = showChildReferringRecords;

}

}

private void ConfigureFieldNode(UltraTreeNode node, Field field) {

node.Cells["Selected"].Value = false;

node.Cells["Name"].Value = field.Name;

node.Cells["DataType"].Value = field.DataType.ToString();

node.Cells["Reference"].Value = "";

node.Tag = field;

}