private void DevexpreeCreateSubMenuItem (BarSubItem menu, string fatherid, DataTable dt)
{
DRS DataRow []=dt. Select (" frm_father_id='" + fatherid + "' ");
Foreach (DataRow item in DRS)
{
//recursive judgment finally level 1
If (item) [r]. "frm_cname" ToString ()=="switch account" | | item [r]. "frm_ename" ToString ()!="")
{
String text=item [r]. "frm_cname" ToString ();
BarButtonItem mitem=new BarButtonItem (barManager1, text);
Mitem. Tag=item;
Menu. ItemLinks. Add (mitem);
Mitem. ItemClick +=new ItemClickEventHandler (DevExpressBindClickToInstinse);
}
The else
{
String text=item [r]. "frm_cname" ToString ();
BarSubItem mitem=new BarSubItem (barManager1, text);
Mitem. Tag=item;
DevexpreeCreateSubMenuItem (mitem, item [r]. "frm_id" ToString (), dt);
Menu. ItemLinks. Add (mitem);
}
}
}
Simple menu with recursive performance also is not a problem, if tens of thousands of article data tree, the recursive must overflow, use the stack is not so good.
There are other ways to non-recursive, the stack to achieve
CodePudding user response:
The.net framework technology called "iterator" mode,