Недавно я прочитал, что самореферентная иерархия теперь поддерживается RadrikridGridView от Telerik. К сожалению, мне не удалось найти какие-либо демонстрации, учебники или примеры кода для просмотра. Доступна ли эта информация?
Вот мой текущий код, с которым я работаю:
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
- Row1
- Row2
- Row3
Ряд 2
Ряд 3
Ряд 4
- ряд 4
Должно быть:
Строка 1
- Ряд 2
- 3 ряд
Ряд 4
Кроме того, другая проблема связана с частью кода, которую я закомментировал. Этот код вызывает ошибку NullReferenceException, и я не знаю, почему.
Если бы кто-нибудь мог мне помочь с приведенным выше кодом или даже указать мне какой-нибудь материал для чтения, я был бы очень признателен.