2013-03-11 135 views
1

我面临着以下问题:当我尝试绑定Telerik Treeview这些列当前没有唯一值

这些列当前没有唯一值。


我的代码:

protected void BindRTV() 
{ 
    rtv_acd.DataTextField = "name"; 
    rtv_acd.DataValueField = "main_id"; 
    rtv_acd.DataFieldID = "main_code"; 
    rtv_acd.DataFieldParentID = "father_code"; 
    rtv_acd.DataSource = dt; 
    rtv_acd.DataBind(); 
} 

数据快照:

enter image description here

如何解决这个问题,我知道main_code是重复的,但我想那个。

+0

我没有真正使用的Telerik控制,但与大多数控制DataValueField通常是唯一的标识符。 – 2013-03-11 13:29:30

回答

5

有节点之间的父子关系,与工作关系在DataFieldIDDataFieldParentID成员指定的值。所以,你必须指定具有唯一值的字段DataFieldID成员。

假设你有一个的1(你已经有了)ID(main_code)两个节点,且有与1父ID(father_code)另一个节点。那么这两个节点中的哪一个是该节点的父节点?

+0

如果他们是重复的字符串值(和你不使用的ID)?难道它不会将任何字符串值与同一父值相同的值处理吗? – PeterX 2013-04-12 00:12:18

+0

@PeterX你的意思是它应该为具有相同字符串值的两个项目创建单个节点? – 2013-04-12 07:16:09

0

正如穆罕默德说,你应该至少有一个唯一键列(不重复)。如果在尝试设置主键时不会发生此错误。

还考虑到,你没有在表中的空行,的确考虑作为唯一的列和我有这个错误。

最好的办法是让有一定数量考虑列的不同行。

请与Telerik的开发者论坛 [1] http://www.telerik.com/forums/fetching-distinct-rows-from-datatable-using-linq [2] http://www.telerik.com/forums/display-distinct-values [3] http://www.telerik.com/forums/adding-5000-distinct-record-for-a-column-based-on-which-grouping-is-done-causing-ie-crash

在这种Telerik的也回答说,你应该使用一个唯一的列项。

另一个可能的调整为不同的值来选择数据表 [4] http://www.telerik.com/forums/radtreeview-selectednode-value

联系他们,如果你还没有解决这个在开发者论坛