2011-10-13 17 views
1

这里的情况:我已经得到了我在显示的层次radgrid控件两级树:有没有办法在树状模式下跳过telerik RadGrid的关卡?

-Category 1 
--Cat 1 Section 1 
--Cat 1 Section 2 
-Category 2 
--Cat 2 Section 1 
--Cat 2 Section 2 
--Cat 2 Section 3 
-Category 3 
--Cat 3 Section 1 

等。但我只是递了新的要求,即类本身实际上是另一种实体的孩子:

-Bucket 1 
--Bucket 1 Category tree... 
-Bucket 2 
--Bucket 2 Category tree... 

的要求,我无法弄清楚如何在radgrid控件表达部分是这样的(实际上这是从整个丑陋的真相简化):如果有数据集中有多个桶,他们希望树的根级别桶,但如果只有一个桶,他们做想要的根为单个桶节点;相反,他们只是希望根级成为那个孤立桶中的类别。

我的问题是,我没有看到一种方法来从控件中删除存储桶级别,并将下一级别提升到根级。有没有办法做到这一点?提前致谢。

回答

0

它将全部归结为您创建的绑定。我不认为有另一种方式来做到这一点。

if (ShowAll) 
{ 
    RadGrid1.DataSource = GetBucketsAll(); 
} 
else 
{ 
    RadGrid1.DataSource = GetCategoriesByBucketId(id); 
} 

然后通过GridDetailTableDataBindEvent工作。

+0

我真的不明白这对我有何帮助。如果!ShowAll,那么我得到的是单个桶,但是AFAICT你仍然可以在层次结构的根部得到这个桶。我需要一种方法从树上完全删除它。 –

+0

桶和桶类别之间必须存在关系,因此您只需获取桶GetCategoriesByBucketId(id)的类别;反过来,只有来自某个特定分类的分类。如果你使用的实体,它会像context.Buckets.Where(d => d.Id = Id).FirstOrDefault()。类别 –

+0

我知道如何获得类别,我只是不知道如何获得RadGrid不显示显示桶的MasterTableView,而是显示包含类别的子DetailTables.GridTableView。 –

相关问题