用户
 找回密码
 立即注册

15

主题

29

帖子

576

积分

高级会员

Rank: 4

积分
576
发表于 2019-4-14 22:09:16
为何控件treeView1动态生成数据后老半天才出来,数据记录只有300多笔,谢谢!
使用道具 举报 回复
n那具体是要多久加载出来呢?你的代码怎么写的?
使用道具 举报 回复 支持 反对
发表于 2019-4-15 23:51:07
您好!以下是我的代码,帮看看问题出在哪,谢谢!
        private void Bind()
        {
            try
            {
                treeView1.Nodes.Clear();
                SqlConnection Con = new SqlConnection(Gloable.YJ_ConnectionString);
                Con.Open();
                string sql = "SELECT MA001, MA002, MA003 FROM EDMMA ORDER BY MA001";
                SqlDataAdapter sqlda = new SqlDataAdapter(sql, Con);
                sqlda.SelectCommand.CommandTimeout = Gloable.CommandTimeOut;
                DataSet ds = new DataSet();
                sqlda.Fill(ds);
                DataTable dt = ds.Tables[0];
                DataRow[] dr = dt.Select("MA003=''");
                for (int i = 0; i < dr.Length; i++)
                {
                    TreeViewNode Node = new TreeViewNode();
                    Node.Checked = false;
                    Node.Text = dr[i]["MA002"].ToString();
                    Node.Value = dr[i]["MA001"].ToString();
                    FillTree(Node, dt);
                    treeView1.Nodes.Add(Node);
                }
                ds.Clone();
                Con.Close();
                treeView1.CollapseAll();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void FillTree(TreeViewNode node, DataTable dt)
        {
            DataRow[] drr = dt.Select("MA003='" + node.Value.ToString() + "'");
            if (drr.Length > 0)
            {
                for (int i = 0; i < drr.Length; i++)
                {
                    TreeViewNode child = new TreeViewNode();
                    child.Checked = false;
                    child.Text = drr[i]["MA002"].ToString();
                    child.Value = drr[i]["MA001"].ToString();
                    if (drr[i]["MA003"].ToString() == node.Value.ToString())
                    {
                        FillTree(child, dt);
                    }
                    node.Nodes.Add(child);
                }
            }
        }
使用道具 举报 回复 支持 反对
经测试加载确实比较慢,treeview是自定义控件组合的,并没有优化显示性能,使用listview,gridview代替,并做分页处理
使用道具 举报 回复 支持 反对
发表于 2019-4-16 15:59:06
您好!,这么好的控件建议你们优化下,谢谢!
使用道具 举报 回复 支持 反对
发表于 2019-9-21 23:50:50
Lula.Jin 发表于 2019-4-16 14:14
经测试加载确实比较慢,treeview是自定义控件组合的,并没有优化显示性能,使用listview,gridview代替,并 ...

做权限这块的话,好像只能tree吧
使用道具 举报 回复 支持 反对
发表于 2019-9-23 11:14:00
csfeixia 发表于 2019-9-21 23:50
做权限这块的话,好像只能tree吧

权限的话你可以根据登录账号的角色显示对应的界面的,和控件无关,你可以看下smoone的
使用道具 举报 回复 支持 反对
发表于 2019-9-23 21:34:43
Lula.Jin 发表于 2019-9-23 11:14
权限的话你可以根据登录账号的角色显示对应的界面的,和控件无关,你可以看下smoone的 ...

smoone里面有权限这块吗?还真没有发现,能发个窗体名称吗?我这确实没找到,主要是要控制里面的修改、删除
使用道具 举报 回复 支持 反对
发表于 2019-9-24 09:30:09
例如frmWork.cs根据role显示不同的菜单
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册