Hey guys, I have an UltraWebTree that is not working as expected. It has 4 levels deep, and after the roor it starts with 2 leaves. One of them is never selected. After the user clicks on it, it will highlight for less than a sec, refresh the page and then highlight the previous leave, without firing the NodeSelectionChanged event.
I just don't have a clue, could somebody help me please?
HTML markup:
<ignav:UltraWebTree id="UltraWebTree1" runat="server" DisabledClass="" NodeEditClass="" TargetFrame="" TargetUrl="" OnNodeSelectionChanged="UltraWebTree1_NodeSelectionChanged" > <Levels> <ignav:Level Index="0" LevelCheckBoxes="False"></ignav:Level> <ignav:Level Index="1"></ignav:Level> <ignav:Level Index="2"></ignav:Level> <ignav:Level Index="3"></ignav:Level> </Levels> </ignav:UltraWebTree>
This is how I populate the WebTree
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PopulateTreeView(); } } public void PopulateTreeView() { DataTable facClassTable = FacClassBLL.getList(); DataTable catGroupTable = CatGroupBLL.getList(); DataTable basicCatTable = BasicCatBLL.getList(); DataTable facAnalysisCat = FacAnalysisCatBLL.getList(); DataSet dataSet = new DataSet("CatCodes"); facClassTable.TableName = CacheKeys.FacClassList.ToString(); catGroupTable.TableName = CacheKeys.CatGroupList.ToString(); basicCatTable.TableName = CacheKeys.BasicCatList.ToString(); facAnalysisCat.TableName = CacheKeys.FacAnalysisCatList.ToString(); dataSet.Tables.Add(facClassTable); dataSet.Tables.Add(catGroupTable); dataSet.Tables.Add(basicCatTable); dataSet.Tables.Add(facAnalysisCat); dataSet.Relations.Add("FacClass_CatGroup", dataSet.Tables[CacheKeys.FacClassList.ToString()].Columns["FacClassSeq"], dataSet.Tables[CacheKeys.CatGroupList.ToString()].Columns["FacClassSeq"]); dataSet.Relations.Add("CatGroup_BasicCat", dataSet.Tables[CacheKeys.CatGroupList.ToString()].Columns["CatGroupSeq"], dataSet.Tables[CacheKeys.BasicCatList.ToString()].Columns["CatGroupSeq"]); dataSet.Relations.Add("BasicCat_FacAnalysisCat", dataSet.Tables[CacheKeys.BasicCatList.ToString()].Columns["BasicCatSeq"], dataSet.Tables[CacheKeys.FacAnalysisCatList.ToString()].Columns["BasicCatSeq"]); UltraWebTree1.DataSource = dataSet; UltraWebTree1.Levels[0].LevelKeyField = "FacClassSeq"; UltraWebTree1.Levels[1].LevelKeyField = "CatGroupSeq"; UltraWebTree1.Levels[2].LevelKeyField = "BasicCatSeq"; UltraWebTree1.Levels[3].LevelKeyField = "FacAnalysisCatSeq"; UltraWebTree1.Levels[0].RelationName = "FacClass_CatGroup"; UltraWebTree1.Levels[1].RelationName = "CatGroup_BasicCat"; UltraWebTree1.Levels[2].RelationName = "BasicCat_FacAnalysisCat"; UltraWebTree1.Levels[0].ColumnName = "FacClassTitle"; UltraWebTree1.Levels[1].ColumnName = "CatGroupTitle"; UltraWebTree1.Levels[2].ColumnName = "BasicCatTitle"; UltraWebTree1.Levels[3].ColumnName = "FacAnalysisCatTitle"; UltraWebTree1.DataMember = CacheKeys.FacClassList.ToString(); UltraWebTree1.DataBind(); }
Any help would be greatly appreciated, thanks in advance !!!!
Ulises
I contacted the support group, they replied quickly by the way, and after we exchanged a couple of emails they mentioned the problem described above is actually a bug of the control and it will be fixed on the next release.
My work around??
I limited the length of the node text, so text like:Electronics and Communications Equipment Maintenance Facilitieswas replaced for Electronics and Communications Equipment...
I spent a lot of time on it, so I hope this helps someone else.
Our support group usually resoponds to emails very quickly - in the 1-2 business day range. If it takes longer than a week, chances are that the email on one of the ends got blocked by something.
Either way, this behavior seems quite odd so I'd certainly recommend you follow through with our support team. You may also want to download the latest hotfix in the mean time to try it out.
-Tony
Thanks for your response !!!
Tony Lombardo"] it sounds like when you click on one of the nodes, it's not getting selected properly
That's right, the UltraWebTree displays fine and some nodes will work just fine but some others will not get selected. They will highlight, but after the postback, the selected node will change to the previous selected node without firing the NodeSelectionChanged event.
Tony Lombardo"] how are you assigning keys to the nodes?
UltraWebTree1.Levels[0].LevelKeyField = "FacClassSeq"; UltraWebTree1.Levels[1].LevelKeyField = "CatGroupSeq"; UltraWebTree1.Levels[2].LevelKeyField = "BasicCatSeq"; UltraWebTree1.Levels[3].LevelKeyField = "FacAnalysisCatSeq";
Tony Lombardo"]Is it possible that two nodes have the same key?
This numbers are automatically generated by the database, they are unique, so No it is not possible
Tony Lombardo"]Also are you augmenting the node structure in any way during the selection change event?
Sometimes It doesn't even fire, but when it does no, I don't change the structure. The UltraWebTree is only populated the very first time the page is hit.
I don't know why I have a feeling it will take weeks before I hear back from the developer support department, we might remove this control from our solution, or is there something else we could try?
Thanks again!
Ulises,
I'm not really sure I understand what the problem is, but it sounds like when you click on one of the nodes, it's not getting selected properly. The first thing that comes to mind for me is, how are you assigning keys to the nodes? Is it possible that two nodes have the same key? Also are you augmenting the node structure in any way during the selection change event?
It's probably best if you work through this with our developer support department. Go to http://es.infragistics.com/gethelp for support options, note that email support is always free.