关于第三方控件Dev 中TreeList 显示树形的问题!!

给为大侠我做的TreeLsit用DataSource绑定数据后,获取节点名称时报错,请问下高手些我这个问题该怎么解决???急~~!!!谢谢!!代码是这样的:///<sum... 给为大侠我做的TreeLsit用DataSource绑定数据后,获取节点名称时报错,请问下高手些我这个问题该怎么解决???急~~!!!谢谢!!
代码是这样的:
/// <summary>
/// 窗体加载事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void xFrmTreeListTest_Load(object sender, EventArgs e)
{
//得到所有用户信息(DataTable)
DataTable dt = ufManager.ToDataTableTow();

//显示树
AppendNodess(dt);
}
/// <summary>
/// List集合显示树
/// </summary>
/// <param name="ufList"></param>
/// <param name="p"></param>
private void AppendNodess(DataTable dt)
{
//绑定数据源
treeList.DataSource = dt;
//设置树的ParentFieldName 属性
treeList.ParentFieldName = "UserParentId";
//设置树的KeyFieldName 属性
treeList.KeyFieldName = "UserId";
}

/// <summary>
/// treeList的FocusedNodeChanged事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeList_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
{
//获取treeList里面一行的某个值“FullNameByNode(e.Node,0);”里面的“0”是要取值的字段位置
string s = FullNameByNode(e.Node, 0);
//给From窗体赋值
this.Text = s;
}

/// <summary>
/// 获取节点名称
/// </summary>
/// <param name="node"></param>
/// <param name="columnId"></param>
/// <returns></returns>
private string FullNameByNode(TreeListNode node, int columnId)
{
string ret = Convert.ToString(node.GetValue(columnId));

if (node.ParentNode != null)
{
node = node.ParentNode;
ret = node.GetValue(columnId).ToString() + "\\" + ret; //得到所选中行节点的第一个值“\\”是隔开父节点和子节点
}
return ret;
}
调试时,这段代码string ret = Convert.ToString(node.GetValue(columnId));
报未将对象引用设置到对象的实例。而直接运行不进入调试就弹出这样一个窗体,点继续或者“X”关闭,又能够显示出节点数据!请各位高手帮帮忙,小弟急用,谢啦!
展开
 我来答
百度网友586e433
2010-08-23 · TA获得超过3491个赞
知道小有建树答主
回答量:1221
采纳率:0%
帮助的人:1420万
展开全部
private string FullNameByNode(TreeListNode node, int columnId)
{

/*+++++++*/ if(node.GetValue(columnId)==null) {return string.Empty;}

string ret = Convert.ToString(node.GetValue(columnId));

if (node.ParentNode != null)
{
node = node.ParentNode;
ret = node.GetValue(columnId).ToString() + "\\" + ret; //得到所选中行节点的第一个值“\\”是隔开父节点和子节点
}
return ret;
}

treeList_FocusedNodeChanged这个时间,貌似在创建控件的时候都会触发一次,即使没有绑定数据源,取值前判断一下
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式