簡體   English   中英

GridView中的自引用層次結構

[英]Self-referencing hierarchy in GridView

我最近讀到Telerik的radGridView現在支持自引用層次結構。 不幸的是,我無法找到任何演示,教程或示例代碼。 該信息可用嗎?

這是我正在使用的當前代碼:

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-ParentLevel2

用我當前的代碼,它顯示為:

第1行-第1行-第2行-第3行第2行第3行第4行-第4行

它應該是:

第1行-第2行-第3行第4行

另外,另一個問題是我注釋掉的那部分代碼。 這段代碼導致拋出NullReferenceException錯誤,我不知道為什么。

如果有人可以幫助我解決上面的代碼,甚至為我指出一些閱讀材料的方向,我將不勝感激。

RadGrid for ASP.NET AJAX支持自引用層次結構。 那可能就是你聽到的。 我還沒有聽說過WinForms RadGridView中的相同功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM