private void DevexpreeCreateSubMenuItem(BarSubItem menu, string fatherid, DataTable dt)
{
DataRow[] drs = dt.Select("frm_father_id='" + fatherid + "'");
foreach (DataRow item in drs)
{
// 遞回判斷最后一級
if ( item["frm_cname"].ToString() == "切換帳號" || item["frm_ename"].ToString() != "")
{
string text = item["frm_cname"].ToString();
BarButtonItem mitem = new BarButtonItem(barManager1, text);
mitem.Tag = item;
menu.ItemLinks.Add(mitem);
mitem.ItemClick += new ItemClickEventHandler(DevExpressBindClickToInstinse);
}
else
{
string text = item["frm_cname"].ToString();
BarSubItem mitem = new BarSubItem(barManager1, text);
mitem.Tag = item;
DevexpreeCreateSubMenuItem(mitem, item["frm_id"].ToString(), dt);
menu.ItemLinks.Add(mitem);
}
}
}
簡單的選單用遞回性能還不成問題, 如果幾萬條的資料tree, 遞回肯定要溢位,用堆疊也不算太好.
有別的方法可以非遞回, 非堆疊實作嗎
uj5u.com熱心網友回復:
.net 框架的技術叫做“迭代器”模式。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/159890.html
標籤:C#
上一篇:C#中,如何調節螢屏亮度?
