Devexpress TreeList控件绑定显示父子节点对像
今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下
public class Item:XPBaseObject
{
public Item()
: base()
{
} public Item(Session session)
: base(session)
{
} [Key(true)]
public int Id{ get;set; } public string Name{get;set;} [Association("SubItems"),Persistent("ParentId")]
public Item ParentItem; [Association("SubItems", typeof(Item)), Aggregated]
public XPCollection<Item> SubItems
{
get { return GetCollection<Item>("SubItems"); }
} }
//...省略部分
this.treeList1.KeyFieldName = "Id";
this.treeList1.Name = "treeList1";
this.treeList1.ParentFieldName = "ParentId";
//...省略部分
实际XPO在数据库中自动生成的数据结构也是符合我们设计的要求的,填写的数据什么地都是正确的,但结果就是不会按照父子节点关系来显示。最后在之前的代码中找到不一样的地方,就是this.treeList1.ParentFieldName = "ParentId"; 这里的字段名在对像类中没有显示声明一个属性导致,虽然在属性ParentItem里有指定字段名ParentId但这里仅仅用于将外键关系存入ParentId这个字段而已。TreeList控件并不会智能地读取该值作为父节点的主键值,还是得要在对像类中声明一个只读的ParentId属性才能解决这个问题,见下面的代码:
public class Item:XPBaseObject
{ //...省略 [NonPersistent]
public int ParentId
{
get { return ParentItem == null ? : this.ParentItem.Id; }
} //...省略 }
总结:TreeList 控件中绑定的字段都是需要在对像类中要存在的属性才可以绑定,不能光在数据库中存在字段就可以,如果属性不存在可以写一个只读并且不用存入数据库的属生用于绑定专用。
Devexpress TreeList控件绑定显示父子节点对像的更多相关文章
- DevExpress TreeList控件的复选框
作者:jiankunking 出处:http://blog.csdn.net/jiankunking TreeList控件能够同一时候显示树结构和其它数据列,即在一个列上建立父子关系展开或收缩,同一时 ...
- Devexpress TreeList控件使用
增加显示列treeList1.Columns.Add(new TreeListColumn {Caption = "城市", FieldName = "Name" ...
- Devexpress treelist 控件属性大全
属性列表 1.OptionsSelection: EnableAppearanceForcusedCell:选中的Cell的Appearance设置是否可用.默认为True: EnableAppear ...
- DevExpress之TreeList控件用作导航使用说明
最近项目用的是DEV界面框架, 由于各控件属性太多,以免遗忘.所以做个笔录.也方便有这方面需求的网友交流学习.下面开始讲解具体实现步骤. 一.先布局,设置相关属性. 1.首先到工具箱拖一个 TreeL ...
- .NET Core 3时代DevExpress Winforms v19.2增强TreeList控件
DevExpress Winforms Controls内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpre ...
- WinForm控件TreeView 只部分节点显示 CheckBox
WinForm控件TreeView 只部分节点显示 CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示check ...
- DevExpress的DateEdit控件正确显示日期的周名称
DevExpress 的控件相当好看而且很好用,但 DateEdit 在是显示周名时,只能显示一个“星”字. 以下是解决方法,此解决方法不需修改其源码,所以免去了重新编译的必要,可直接使用其发布的标准 ...
- DevExpress相关控件中非字符数值居左显示
用了这么长时间的DevExpress控件,今天遇到俩问题. 一个是从头到尾看了一遍编译成功的例子,只能感慨,功能太丰富了,自己所用的不过是冰山一角.有些自己一直想实现的效果,原来早就有现成的可用,汗颜 ...
- DevExpress中 TreeList控件的常规配置
//以下为TreeList控件样式相关设置 this.treelist_SystemCfg.BackColor = Color.Transparent; this.treelist_SystemCfg ...
随机推荐
- 解决ScrollView嵌到listView冲突问题
方法一: 把下面的方法放在绑定适配器操作的下面就行. /** * 重新计算ListView的高度,解决ScrollView和ListView两个View都有滚动的效果,在嵌套使用时起冲突的问题 * @ ...
- poj3642 01背包
http://poj.org/problem?id=3624 #include<iostream> #include<cstdio> #include<algorithm ...
- Uva442 hdu 1082 Matrix Chain Multiplication
要注意取出来的时候 先取出q的是后面那个矩阵 后取出p的是前面的矩阵 所以是判断 p.a == q.b #include <iostream> #include <stack> ...
- 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...
- Ue4 BatteryCollector 教程笔记
H UFUNCTION(BlueprintNativeEvent) void EventName(); virtual void EventName_Implementation(); EventNa ...
- nav元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Financial Management[POJ1004]
Financial Management Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 179458 Accepted: ...
- 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)
现在的翻译软件功能越来越多,也越来越臃肿,还不时弹广告,真的很烦恼. 鉴于这种情况,自己做了个翻译软件,能满足日常需求就好了.需要用的时候可以直接在桌面输入单词翻译,或者直接使用快捷键呼出翻译窗口.最 ...
- 【NOI2016】区间 题解
题目大意: 有n个区间,当有m个区间有公共部分时,求m个区间长度的最大值与最小值之差的最小值. 思路: 按区间的长度从小到大排序,可知连续的几个区间最优,则用两个指针指其头尾,线性扫描,再用线段树区间 ...
- ACM 16进制的简单运算
16进制的简单运算 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果. 输入 第一行输入一个正整 ...