Private void loadtree ()
{
Gtree. nodes. Clear ();
DS = workdo. getdataset ();
Inittree (gtree. nodes, "0 ");
}
Private void inittree (treenodecollection NDS, string parentid)
{
Dataview DV = new dataview ();
Treenode tmpnd = NULL;
DV. Table = Ds. Tables [0];
DV. rowfilter = string. Format ("parentid = '{0}'", parentid );
Foreach (datarowview DRV in DV)
{
Tmpnd = new treenode ();
Tmpnd. Text = (string) DRV ["workname"]; // node name
Tmpnd. value = (string) DRV ["ID"];
// Tmpnd. navigateurl = string. Format ("? Id = {0} ", DRV [" ID "]); // node URL
// Tmpnd. imageurl = ""; // node Image
If (parentid = "0 ")
Tmpnd. Expanded = true;
Else
Tmpnd. Expanded = false;
NDS. Add (tmpnd );
Inittree (NDS [NDS. Count-1]. childnodes, DRV ["ID"]. tostring ());
}
}
/// <Summary>
/// When the metric point changes, the operation is displayed on the graphic interface.
/// </Summary>
/// <Param name = "sender"> </param>
/// <Param name = "E"> </param>
Public event eventhandler selectednodechanged;
Protected void gtree_selectednodechanged (Object sender, eventargs E)
{
This. nodeid = gtree. selectednode. value;
// = Tree1.selectednode. valuepath; // complete path of Value
String STR = "";
Treenode parentnode = gtree. selectednode. parent;
While (parentnode! = NULL)
{
STR = "/" + parentnode. Text + STR;
Parentnode = parentnode. parent;
}
This. nodename = (STR + "/" + gtree. selectednode. Text). substring (1); // complete text path name
Txtcontent_texttree.value = This. nodename;
If (selectednodechanged! = NULL)
Selectednodechanged (sender, e );
}