WEB开发网
开发学院图形图像Flash Silverlight Treeview 相关操作:加载,保存,索引节... 阅读

Silverlight Treeview 相关操作:加载,保存,索引节点,节点移动,模板节点

 2009-03-14 12:00:33 来源:WEB开发网   
核心提示:最近一个Silverlight项目中,需要多处表达展示内容的“父子”关系,Silverlight Treeview 相关操作:加载,保存,索引节点,节点移动,模板节点,自然用“树”来表达自然是再好不过,Ms Toolkit中包含了TreeView控件,并根据IDX来加载I

最近一个Silverlight项目中,需要多处表达展示内容的“父子”关系。自然用“树”来表达自然是再好不过。Ms Toolkit中包含了TreeView控件,很好的满足了需求。

要表述树状关系,数据库的设计一定要合理,不然这层关系在加载的时候就会很痛苦。另外,根据需求,树状节点的展示还要有一定的顺序,所以一棵树在保存的时候,每个节点在树中的位置也要有所记录。

数据库设计

CREATE TABLE BASIC_INFO
(
  ID        NUMBER(22,3),
  NAME      VARCHAR2(100 BYTE),
  PARENTID  NUMBER(22,3),
  GRADE     NUMBER(1),
  MEMO      VARCHAR2(100 BYTE),
  IDX       NUMBER(5)
)

这样,加载的时候就可以根据ID,ParentID找到父子关系,并根据IDX来加载ID在树中的索引。这个索引要从树的第一个节点开始深度遍历,根据遍历到的节点的顺序记录其索引。

-树的加载

string sqlTv = "SELECT * FROM PDM_BASIC_INFO ORDER BY IDX ASC";

void client_getProjectInfoCompleted(object sender, getProjectInfoCompletedEventArgs e)
        {
                      if (e.Error == null)
            {
                tvshow.Items.Clear();

ObservableCollection<ProjectInfo> listsForProject = new ObservableCollection<ProjectInfo>();

                listsForProject = e.Result;

                //添加Title Node
                TreeViewItem titleNode = new TreeViewItem();
                titleNode.FontSize = 15;

               //为树加载标题节点
                //titleNode.Background = new SolidColorBrush(Colors.Cyan);
                Grid gridTitle = getTitleGridTemplate();
                setTitleData(gridTitle);
                titleNode.Header = gridTitle;

                // titleNode.Background = null;
                tvshow.Items.Add(titleNode);


                ///加载添加Node
                AddTreeNodeForProject(0, null);

           
            }
            else
            {
                MessageBox.Show("操作异常,请重新作业" + e.Error.Message, "注意", MessageBoxButton.OK);
            }
        }

1 2 3 4 5  下一页

Tags:Silverlight Treeview 相关

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接