Hi Michael,
That makes sense :). What happened was:
1. The page posts back;
2. The TreeView reconstructs all the TreeNode from view state, and locate the node whose check state has changed and keeps a reference to it;
3. Page_Load is called, during which you repopulate all the nodes. At this point, all the old nodes were taken off from the TreeView. It is at this point the node step 2 keeps become an "orphan" node since it no longer belongs to the TreeView;
4. ItemCheckStateChanged is triggered. Since the node whose check state has changed is an orhan node, it has no parent node;
The easiest way to avoid this error is to add an if condition in your Page_Load:
Code: Visual Basic.NET
If Not Page.IsPostBack Then
....do your data binding stuff....
End If
Thanks