为节点添加单击事件,处理内容为:检索数据,绑定到DATAGRID。楼主是这个意思么?

解决方案 »

  1.   

    给你段VB的代码看看,C#的手头还没有。'选择某类信息:载入到列表
    '---------------------------------------------------------
    Private Sub tvwClass_Click()
        
        Dim strSql    As String
        Dim strTemp   As String
        Dim iState    As Integer
        
        If tvwClass.SelectedItem.Key = "Root" Then Exit Sub
        
        iState = FreightStateName2Code(tvwClass.SelectedItem.Key)
        
        '构造SQL查询语句
        strTemp = FormatWhere()
        strTemp = IIf(Len(strTemp) = 0, " Where State=" & iState, strTemp + " And State=" & iState)
        
        strSql = "Select A.FreightNo,Info,State," & _
                 "StartAddress,AcceptAddress,Consigner,SendTime,Motorman,MotormanTel," & _
                 "Consignee,AcceptTime,DistillMan,DistillTime " & _
                 "FROM FreightInfos as A INNER JOIN FreightStock as B " & _
                 "ON A.FreightNo=B.FreightNo " & strTemp
        
        Call LoadLists(strSql)      '添加查找结果到列表
        
    End Sub
      

  2.   


    /// <summary>
    /// 选择节点后处理
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void TvwRefrigeratory_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
    TreeNode ItemNode=this.TvwRefrigeratory.SelectedNode;

    int RefrigeratoryID;              //冷库ID,库位ID
    string TvwString;                 //选中的节点字符串 TvwString=ItemNode.Text;

    if(e.Node.Text==sTvwRootString)       //为根节点
    {
    InitLvwView(0); } if(ItemNode.Text==sTvwRootString)
    {
    //如果选中的为根节点


    }
    else if(ItemNode.Parent.Text==sTvwRootString)
    { //如果选中的为冷库
    //检索DATAGRID代码 }

    }
      

  3.   

    这是我的代码。你可以看看
    #region 使用datatable填充treeview
    private string  a_rootvalue="";
    public string Tv_rootValue
    {
    get
    {
    return a_rootvalue;
    }
    set
    {
    a_rootvalue=value;
    }
    }
    private DataTable a_TvData=new System.Data.DataTable();
    public DataTable DT_DataTable
    {
    get
    {
    return  a_TvData;
    }
    set
    {
     a_TvData=value;
    }
    }
    private string  a_key="";
    public string m_key
    {
    get
    {
    return  a_key;
    }
    set
    {
    a_key=value;
    }
    }
    private string  a_relkey="";
    public string m_relkey
    {
    get
    {
    return  a_relkey;
    }
    set
    {
    a_relkey=value;
    }
    }
    private string  a_keyname="";
    public string m_keyname
    {
    get
    {
    return  a_keyname;
    }
    set
    {
    a_keyname=value;
    }
    }
    public void UF_SetTvData()
    {
    if(a_rootvalue == null & a_rootvalue=="")
    {
    return;
    }
    if(this.a_TvData.Rows.Count==0)
    {
    return;
    }
    UF_InitTreeView(this.Nodes,a_rootvalue); 
    //聚焦到树的第一个节点上 
    this.SelectedNode=this.Nodes[0]; 
    this.Focus(); 
    //折叠所有的树的节点 
    this.CollapseAll(); 
    }
    private void UF_InitTreeView(TreeNodeCollection Nds,string parentId) 
    {

    if (this.a_key=="" & this.a_key==null)
    return;
    if (this.a_keyname=="" & this.a_keyname==null)
    return;
    if (this.a_relkey=="" & this.a_relkey==null)
    return;
    //建立视图,为以后设立查询条件作准备 
    DataView mydataview=new DataView(); 
    //新节点 
    TreeNode newNode; 
    //新节点的父亲节点ID 
    string newNodeFatherId; 
    //dataview的数据源 
    mydataview.Table=a_TvData; 
    //过滤条件 
    mydataview.RowFilter=this.a_relkey+"="+parentId;  foreach(DataRowView drv in mydataview) 

    newNode=new TreeNode(); 
    newNode.Tag=drv[this.a_key].ToString(); 
    newNode.Text=drv[this.a_keyname].ToString(); 
    Nds.Add(newNode); 
    newNodeFatherId=drv[this.a_relkey].ToString(); 
    //递归调用遍历当前节点的子节点 
    UF_InitTreeView(newNode.Nodes,newNode.Tag.ToString ()); 
    }
    }
    #endregion
      

  4.   

    我也说一下我自己以前用过的大概思路:treeview,datagrid
    我在treeview中放的是商品目录,在datagrid中放的是商品信息,
    在treeview发生单击事件时,取得结点上的商品目录名称,再把商品表dataview.RowFilter="类别名 = '"+商品目录名称+"'",再把datagrid和商品表dataview连在一起,就可以检索选定结点类别的商品了
      

  5.   

    把商品名称做成TreeNode ,把该类别的Node加进该类别
      

  6.   

    treeView1.Nodes.Clear() ;
    System.Windows.Forms.TreeNode mNode=new TreeNode("全部");
    //mNode.ImageIndex =1;
    treeView1.Nodes.Add(mNode) ;
    //假设DataSet 已经取得
    System.Windows.Forms.TreeNode nNode=new TreeNode("在职");
    System.Windows.Forms.TreeNode pNode=new TreeNode("离职");
    treeView1.TopNode.Nodes.Add(nNode) ;
    treeView1.TopNode.Nodes.Add(pNode) ;
    treeView1.Select ();
    if (ds.Tables [0].Rows.Count <=0 )
    {
    return;
    }
    else
    {
    // add Add some childtreenodes
     
    foreach(DataRow dr in ds.Tables [0].Rows )
    {

    System.Windows.Forms.TreeNode aNode=new TreeNode(dr["Name"].ToString() );
    System.Windows.Forms.TreeNode bNode=new TreeNode(dr["Name"].ToString());
    treeView1.Nodes [0].Nodes[0].Nodes .Add (aNode);
    treeView1.Nodes [0].Nodes[1].Nodes .Add (bNode);
    }
    }
    }
     
    }