我最近讀到Telerik的radGridView現在支持自引用層次結構。不幸的是,我一直無法找到任何演示,教程或示例代碼來查看。這些信息是否可用?GridView中的自引用層次結構
這裏是我的工作我當前的代碼:
private void SetupElementsGrid(){
radGvElements.Columns.Clear();
radGvElements.MasterGridViewTemplate.Columns.Add(new GridViewTextBoxColumn("ElementID"));
radGvElements.MasterGridViewTemplate.Columns.Add(new GridViewTextBoxColumn("ProtocolTemplateID"));
radGvElements.MasterGridViewTemplate.Columns.Add(new GridViewTextBoxColumn("ParentElementID"));
radGvElements.MasterGridViewTemplate.Columns.Add(new GridViewTextBoxColumn("ElementNumber"));
radGvElements.MasterGridViewTemplate.Columns.Add(new GridViewTextBoxColumn("ElementDesc"));
radGvElements.Columns["ElementID"].IsVisible = false;
radGvElements.Columns["ProtocolTemplateID"].IsVisible = false;
radGvElements.Columns["ParentElementID"].IsVisible = false;
radGvElements.Columns["ElementNumber"].HeaderText = "Element Number";
radGvElements.Columns["ElementDesc"].HeaderText = "Element Description";
radGvElements.MasterGridViewTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
GridViewTemplate childTemplate = new GridViewTemplate();
childTemplate.Columns.Add(new GridViewTextBoxColumn("ElementID"));
childTemplate.Columns.Add(new GridViewTextBoxColumn("ProtocolTemplateID"));
childTemplate.Columns.Add(new GridViewTextBoxColumn("ParentElementID"));
childTemplate.Columns.Add(new GridViewTextBoxColumn("ElementNumber"));
childTemplate.Columns.Add(new GridViewTextBoxColumn("ElementDesc"));
//childTemplate.Columns["ElementID"].IsVisible = false;
//childTemplate.Columns["ProtocolTemplateID"].IsVisible = false;
//childTemplate.Columns["ParentElementID"].IsVisible = false;
//childTemplate.Columns["ElementNumber"].HeaderText = "Element Number";
//childTemplate.Columns["ElementDesc"].HeaderText = "Element Description";
childTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
if(radGvElements.MasterGridViewTemplate.ChildGridViewTemplates.Count == 0)
{
radGvElements.MasterGridViewTemplate.ChildGridViewTemplates.Add(childTemplate);
}
GridViewRelation relation = new GridViewRelation(radGvElements.MasterGridViewTemplate);
relation.ChildTemplate = childTemplate;
relation.RelationName = "ParentChild";
relation.ParentColumnNames.Add("ElementID");
relation.ChildColumnNames.Add("ParentElementID");
radGvElements.Relations.Add(relation);
ProtocolTemplate = (ProtocolTemplate)ProtocolTemplatesBindingSource.CurrencyManager.List[ProtocolTemplatesBindingSource.CurrencyManager.Position];
ElementsBindingSource.DataSource = ProtocolTemplate.Elements;
radGvElements.DataSource = ElementsBindingSource;
radGvElements.DataSource = ElementsBindingSource;
childTemplate.DataSource = ElementsBindingSource;
}
的樣本數據是這樣的:
ElementID - ProtocolTemplateID - ParentElementID - ElementNumber - - ElementDesc 1 - 1 - 1 - 1.0 - ParentLevel1 2 - 1 - 1 - 1.1 - ChildLevel1 3 - 1 - 1 - 1.2 - ChildLevel2 4 - 1 - - 4 - 2.0 - P arentLevel2
隨着我當前的代碼,這顯示爲:
行1 - ROW1 - ROW2行 - ROW3 行2 行3 第4行 - 行4
它應該是:
行1 - 行2 - 行3 第4行
此外,另一個問題是我已經註釋掉了部分代碼。此代碼導致拋出NullReferenceException錯誤,我不知道爲什麼。
如果有人能夠幫助我解決上述問題,或者甚至將我指向某些閱讀材料的方向,我將非常感激。
嗨凱文,這裏是我找到了有關WinForms GridView的自引用層次結構的部分:http://www.telerik.com/products/winforms/gridview.aspx。這是頁面層次結構部分的一個簡短的簡介。 – Sesame 2009-10-14 14:14:19