Outlook-style TreeView bound to a typed dataset with 3 hierarchical tables, and expecting 3 hierarchical nodes. The first two are naturally hierarchical in the database, the dataset, and the TreeView with foreign key/relation constraint. The second two tables are relation-only (the link is forged in the query as in the database, the tables are separated by breaking tables etc.and not guaranteed unique). In the ColumnSet layout wizard, I only saw the first two, so I manually added columns and columnset for the third, and that now appears in the ColumnSet layout wizard. However, when I run the application and fill the dataset, I do not see ever see the third node.
I have checked the third table after filling the dataset. There are many rows, and I can see the parent 2nd table row from each row in the third table. The data looks fine to me. I have iterated through the nodes in code and the third node is missing.
Can you provide hints as to what might cause this or where to look? I'm suspecting it might be that I am using a relation link instead of a foreign key/Relation link between the last two tables.
"code below" was not mentioned in my replies. I did mention in the first post a reference to "which fills the typed dataset below" (no code, just a description of the dataset). As mentioned, my app so far has no code whatsoever other than database retrieval to fill the dataset
I believe OutlookExpress Viewstyle sets up a hierarchical view - might you be mistaken?
I let the ultraTree autogenerate the columnsets but when the 3rd table was missing in the run application, I generated them by hand. That did not make the 3rd table appear. When I deleted all references to the bindingSource and rebound in the Designer, then the 3rd table appeared. This is reproducible. I am willing to let this go, but I do think it might be a flaw.
ultraTree1.ColumnSettings.AutoGenerateColumnSets is set to true by default, so yes, it was thus set (again, I have no code at all modifying the UltraTree). I did get the prompt but it did not propagate to the application when run.
Is it possible I need a newer version of Infragistics (13.2). I have expected you to suggest this :-)
Mark Bean said:"code below" was not mentioned in my replies. I did mention in the first post a reference to "which fills the typed dataset below" (no code, just a description of the dataset). As mentioned, my app so far has no code whatsoever other than database retrieval to fill the dataset
Oh, I misunderstood what you meant.
Mark Bean said:I believe OutlookExpress Viewstyle sets up a hierarchical view - might you be mistaken?
OutlookExpress does show hierarchical data, but the columns at every level are the same so it looks flat-ish. Your original post made it sound like you were showing 3 separate tables from a dataset. But I guess I am confused about the structure of your data.
What, exactly, do you mean by "the third table?" Do you mean the grandchild table?
GrandChild <-- is this the third table? So you were seeing the first two levels and not the third?
I'm still leaning toward my initial assessment, which is that when you made the change(s) to your data source, the ColumnSets didn't get updated for some reason. And so the child data didn't show up in the tree because the Chaptered column was not defined in the ColumnSet. Which may or may not be a bug in the tree designer, depending on what kinds of notifications we get from the BindingSource.
But without a detailed understanding of exactly what the data structure was to start with and exactly what changed, it's hard to test it and find out for sure.
Oh, and regarding the version you are using - I suppose it's POSSIBLE that there's some bug in the version you are using that is failing to prompt you or update the column sets. But frankly, I doubt it. We haven't updated the ColumnSets or the tree designer in quite a while. And the prompt I am referring to was added back in 2009. Well before the version you are using.
Yes, you are understanding me now. Data structure was 3 hierarchical tables linked by foreign keys/relations. At first, the grandchild table didn't appear in the Custom Layout Designer, but later, it did, but wouldn't appear in the running application. When I deleted all references to the bindingSource, and went through data binding again, everything worked. To me, this was evidence that ultraTree does not look for changes to the typed dataset column definitions before it runs or perhaps even during compilation. I can send you an XML typed dataset and single line of code to play with if you wish. The typed dataset xml is longer than I'd care to post here. Or we can skip this as taking too much of your time. You've been very generous.
If you can save your original DataSet structure to XML, zip it up, and attach it here, I could load it into a DataSet in the designer and bind a tree to it. Presumably, you are using a BindingSource, so we could try that, too. Then I just need to know exactly what changes to make to the DataSet to make the problem (where the third level disappears) happen. I would be happy to try that out if you want. If there is a problem with the notifications, I'd certainly like to find it and get it fixed, if possible. But I understand that you have basically worked around the problem, now. So it's really up to you whether you want to continue to pursue it. :)