c# TreeView选中节点时在DataGridView控件中显示数据库中的数据
DataGridView控件中可以显示那个数据表的数据了。就是不能选中时更改数据的类型。privatevoidTreeV_AfterSelect(objectsender...
DataGridView控件中可以显示那个数据表的数据了。就是不能选中时更改数据的类型。
private void TreeV_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Tag.ToString() == "-1")//编译时这段会出错呢,说没有实例化
DataTable的实例.DefaultView.RowFilter = " ";
else
DtUser.DefaultView.RowFilter="类型编号=‘“+e.node.tag.tostring()+”’"//这里面是不是对的啊 感觉有问题。如果有解决的方法 麻烦说哈 各位大神。
}
这是第一个表
列名 数据类型 允许null
借书本数 ...
类型编号 ....
借书本数 .... 展开
private void TreeV_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Tag.ToString() == "-1")//编译时这段会出错呢,说没有实例化
DataTable的实例.DefaultView.RowFilter = " ";
else
DtUser.DefaultView.RowFilter="类型编号=‘“+e.node.tag.tostring()+”’"//这里面是不是对的啊 感觉有问题。如果有解决的方法 麻烦说哈 各位大神。
}
这是第一个表
列名 数据类型 允许null
借书本数 ...
类型编号 ....
借书本数 .... 展开
2个回答
2015-01-10
更多追问追答
追问
效果差不多。不过没用复选框是直接点中节点名称就显示出来 也没有查找按钮。求助
追答
我知道你的 if (e.Node.Tag.ToString() == "-1")//编译时这段会出错呢,说没有实例化
为何而错了,1.你可能没设置TreeView的Tag属性,即:
myNodes[id].Tag = dr1["dept_name"].ToString();
2.你的第一个根节点是手动设置(即不是从数据库中对应获取的,而是
myNodes[0] = new TreeNode();
myNodes[0].Text = "学院部门";//添加根节点
myNodes[0].Name = "null";
myNodes[0].Tag = "学院部门";)
所以才会导致你以运行代码就会出现e.Node.Tag.ToString()为空而报没有实例化的错误,解决的办法就是在加载TreeView的代码里为其Tag属性赋值
至于这句话: DtUser.DefaultView.RowFilter="类型编号=‘“+e.node.tag.tostring()+”’"//这里面是不是对的啊。
它的逻辑是没错的
DtUser.DefaultView.Sort = "M_BigOrder asc"; //相当于Order By
DtUser.DefaultView.RowFilter = "M_Fid='0'"; //相当于Where
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询