当前位置:编程学习 > C#/ASP.NET >>

TREEVIEW与DATAGRIDVIEW结合

想实现这样一个功能,TREEVIEW这边点击节点,DATAGRIDEVIEW里面就显示相对应的数据,这些数据都是由数据库里的同一个表里提取的!请帮忙指点一下! --------------------编程问答-------------------- 。。。。没人指点么!还是不屑与这种低级问题。。。还请帮帮忙!先谢谢了 --------------------编程问答-------------------- 首先绑定后的treeview每个节点都有一个text和一个value,当点击每个节点时可以取到这个节点的value(一般是ID值)和text(显示的),然后用这个value来绑定datagridview就可以啦(在选择节点时):
 protected virtual void OnTreeView_SelectedNodeChanged(object sender, EventArgs e)
    {
        try
        {
            int id= int.Parse(((TreeView)sender).SelectedNode.Value.ToString());
            bindGridview(id);
        }
        catch
        {
        }
    } --------------------编程问答-------------------- 通过reeView1_SelectedNodeChanged事件,查询值,绑定数据到DATAGRIDEVIEW.
--------------------编程问答-------------------- 能不能具体点,现在刚学!很多不会!数据已经连接到DATAGRIDEVIEW了!我现在没个基本概念!。。。对这些控件的应用!或者能不能介绍点这些控件的实用的书!最好是带例子的!谢谢各位了!  --------------------编程问答-------------------- 我目前也有這樣的疑問啊。幫頂~~
期待完美答案~! --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 1、得到tree的变化值
 Private Sub RegionTree_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles RegionTree.AfterSelect
        DispCamera(Me.RegionTree.SelectedNode.Name.ToString)
    End Sub
2、更新dg对应的数据源
 Private Sub DispCamera(ByVal DispText As String)
        Try
            SourceDs.Clear()
            SqlConn.Open()
            Dim ReadStr As String = "Select DispName,CameraLib.Channel As CChannel,CameraLib.Memo As Memo,VideoServerLib.* From CameraLib " _
            + "Inner Join VideoServerLib On CameraLib.VideoServerId = VideoServerLib.Id Where DispUpId = '" + DispText + "' And DispState='True'"
            Dim ReadAdapter As New SqlClient.SqlDataAdapter(ReadStr, SqlConn)
            Dim ReadCommand As New SqlClient.SqlCommandBuilder(ReadAdapter)
            ReadAdapter.Fill(SourceDs, "Camera")

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            SqlConn.Close()
        End Try

        Me.CameraList.DataSource = SourceDs.Tables("Camera")


    End Sub --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 感谢!!正在使用 --------------------编程问答-------------------- 通过reeView1_SelectedNodeChanged,获取值。
来查找对应的内容绑定到datagrid --------------------编程问答-------------------- 根据treeview.selectnode 的name ,tag ,text 等属性,作为select 条件,生成新的 ds ,再绑定到 datagridview. --------------------编程问答-------------------- 最近没时间上网,现在才回来!看了各位老大的信息还是没摸着头脑!这里看看代码吧!我是看别人的:
   Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
        Dim dgvds As New DataSet
        Dim da As SqlDataAdapter
        Dim strdgv As String

        If e.Node.Level = 0 Then
            Call dgv()
        Else

            Call DBopen()
            strdgv = "select pbbm as 部门,pbmc as 名称,pbdm as 班次,shang1 as 上班时间,sha1 as 下班时间,shang2 as 上班时间,sha2 as 下班时间,"
            strdgv = strdgv & "shang3 as 上班时间,sha3 as 下班时间 from rsuserpb where pbbm='" & e.Node.Text & "'"
            da = New SqlDataAdapter(strdgv, connection)
            da.Fill(dgvds, "rsuserpb")
            DataGridView1.DataSource = dgvds.Tables("rsuserpb")
            DataGridView1.CurrentCell = Nothing
            Dim i As Integer
            For i = 1 To DataGridView1.RowCount
                DataGridView1.Rows(i - 1).HeaderCell.Value = i.ToString
            Next
            ta = dgvds.Tables("rsuserpb")
            Call DBclose()

        End If
        emp_id = 0
        emp_name = ""


用的是NodeMouseClick事件,但是只实现了Node.Level = 0的事件把DATAGRIDEVIEW连接的整张表都显示出来了!但是点分节点的时候都没任何显示的。。。请问怎么改? --------------------编程问答-------------------- 这种问题实在不太好回答,随便看了一下楼上各位的,我同意3、10、11楼的思路。

慢慢做啦!呵呵 --------------------编程问答-------------------- 晕!召唤强淫 --------------------编程问答-------------------- 能提供个小系统的实例吗?谢谢了!! --------------------编程问答-------------------- 有两种办法:
1,点击NODE执行POSTBACK.后面代码中BINDDATAGRID.
2,绑定TREE时,给节点加JS代码.用DIV或者IFRAME显示DATAGRID.
点击节点时通过JS代码传节点ID刷新DG.
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,