本文轉載:http://www.cnblogs.com/VincentLuo/archive/2012/01/06/2313983.html
一、設置載請保留地址http://www.cnblogs.com/vincentluo
使用dev的樹控件(XtaTreeList)來顯示有父子關系的分類,
數據庫表中只要三列:ParentID,CategoryID,CategoryName;
將控件的屬性ParentFieldName設置為ParentID,屬性KeyFieldName設置為CategoryID;
先上圖,如下圖所示:
點擊Run Designer,先添加兩列,設置他們的FieldName,這樣用來綁定數據;分類編號的Visible=false可以進行隱藏;
如下圖:
二、綁定 載請保留地址http://www.cnblogs.com/vincentluo
數據綁定很簡單了
返回DataTable就可以了:
private void BindCategories()
{
DataTable dt = Info.Get_Categories();
tlCategoryList.DataSource = dt;
}
三、操作載請保留地址http://www.cnblogs.com/vincentluo
鼠標單擊節點時,獲取節點信息
private string CategoryID = null;
private string CategoryName = null;
private void tlCategoryList_MouseDown(object sender, MouseEventArgs e)
{
#region 獲取點擊節點的信息
TreeListHitInfo hi = tlCategoryList.CalcHitInfo(e.Location);
TreeListNode CurrentNode = hi.Node;
if (CurrentNode != null)
{
CategoryID = CurrentNode.GetValue("CategoryID").ToString();
CategoryName = CurrentNode.GetValue("CategoryName").ToString();
}
#endregion
if (e.Button == MouseButtons.Left)//左鍵
{
//Do something
lblCategoryName.Text = CategoryName;
}
else if (e.Button == MouseButtons.Right)//右鍵
{
//Do something
}
}
另:右鍵的彈出菜單使用了ContextMenuStrip,添加相關節點,綁定到XtaTreeList即可:設置XtaTreeList的ContextMenuStrip
菜單的單擊事件:
private void treeShowMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
ShowDialogForm sdf = new ShowDialogForm("提示","正在加載,請稍候......");
ToolStripItem item = e.ClickedItem;
if (item.Name == "MenuAddCategory")
{
CategoryEditFrm.GetInstance(-1,0);
}
if (item.Name == "MenuAddChildCategory")
{
CategoryEditFrm.GetInstance(int.Parse(CategoryID), 1);
}
if (item.Name == "MenuEditCategory")
{
CategoryEditFrm.GetInstance(int.Parse(CategoryID),2);
}
else if (item.Name == "MenuEditLink")
{
LinkEditFrm.GetInstance();
}
然后進入編輯頁面,如下圖:
保存提示:(提示效果見:Dev 等待提示 WaitDialogForm 另外版)
四、最后 轉載請保留地址http://www.cnblogs.com/vincentluo
dev 的XtraTreeList很強大,可以選擇節點然后直接進行拖動,本篇暫時寫這么多,如果有更新的會另開隨筆記錄下來,更多功能待發覺;
大家有更好的建議,請多多指導
轉載請保留地址http://www.cnblogs.com/vincentluo