例 

    a 
    b 
    c 
    d 
    e 
    f
2   
    a2 
    b2
    c2
    d2当前选择为c 我想点一个按钮后得到d 的索引 ! 
也就是说 在c时 我点“下一个” 就得到d 
点“上一个”得到b 
“第一个” 得到a “最后一个” 得到f 
把我绑定时的代码贴上! 供参考! 
public void treeviewbd() 

string sql = "select distinct 分组编号 from 试题数据"; 
SqlConnection myconn = DB.mysqlconnection(); 
myconn.Open(); 
SqlDataAdapter adapter = new SqlDataAdapter(sql, myconn); DataSet ds = new DataSet(); 
adapter.Fill(ds, "sysobject"); 
foreach (DataRow dataRow in ds.Tables["sysobject"].Rows) 

// 取得当前分组编号 
string firstText = dataRow["分组编号"].ToString(); 
// 生成第一级节点 
TreeNode node = new TreeNode(); 
node.SelectAction = TreeNodeSelectAction.Expand; 
node.Text = firstText; // 取得当前分组下所有题号 
string sqlChild = "Select ID,题组编号,成绩 from 试题数据 where 分组编号='" + firstText + "'"; 
SqlDataAdapter childAdapter = new SqlDataAdapter(sqlChild, myconn); 
DataSet childDs = new DataSet(); 
childAdapter.Fill(childDs); 
DB.stid_cz = childDs.Tables[0].Rows[0][0].ToString(); 
this.st_text(); foreach (DataRow childRow in childDs.Tables[0].Rows) 

// 循环取题号 
string childMenu = childRow["题组编号"].ToString(); 
string childid = childRow["ID"].ToString(); // 生成二级节点 
TreeNode childNode = new TreeNode(); 
//判断。没有成绩的题(也就是没有评过分的题).题前面会加上一个点 " . " 
if (childRow["成绩"].ToString() == "") 

childMenu = "." + childMenu; 

childNode.Text = childMenu; 
childNode.Value = childid; 
node.ChildNodes.Add(childNode); 

TreeView1.Nodes.Add(node); 

}最好能在不动绑定代码的情况下去点击按钮翻页! 如果不行就算了
问题补充:开发环境.. 
vs2008 sql 2005 
现在获取不到当前节点是个问题!!!!! 

解决方案 »

  1.   

    //下一个
    private void button1_Click(object sender, EventArgs e)
            {
                int i = treeView1.SelectedNode.Index;
                if (i < treeView1.Nodes.Count - 1)
                {
                    treeView1.SelectedNode = treeView1.Nodes[i + 1];
                }
                treeView1.Select();
            }
    //上一个
    private void button2_Click(object sender, EventArgs e)
            {
                int i = treeView1.SelectedNode.Index;
                if (i >  0)
                {
                    treeView1.SelectedNode = treeView1.Nodes[i - 1];
                }
                treeView1.Select();
            }//第一个
    treeView1.SelectedNode = treeView1.Nodes[0];
    //最后一个
    treeView1.SelectedNode = treeView1.Nodes[treeView1.Nodes.Count-1];
      

  2.   

    int i = treeView1.SelectedNode.Index; 
      .Index;  点后边没有啊````   写不出来!强行写完后显示红色下划线!...
      

  3.   

    2005里好像没有SelectedNode.Index 依据来源
    http://www.9iyou.com/Program_Data/cshap-105230.html
      

  4.   

    2楼提供的是winform控件 lz的是web控件
    将int i = treeView1.SelectedNode.Index; 替换成
    int i = treeView1.Nodes.IndexOf(treeView1.SelectedNode);
      

  5.   

    做之前可以先把被选中的节点低色改为红色 <SelectedNodeStyle BackColor="#FF8080" />
     protected void Button1_Click(object sender, EventArgs e)
        {
            TreeNode tn = MyTreeView.SelectedNode;
            TreeNode ftn = MyTreeView.SelectedNode.Parent;
            int index=ftn.ChildNodes.IndexOf(tn);
            if (index - 1 >= 0)
            {
                TreeNode currentNode = ftn.ChildNodes[index - 1];
                Response.Write(currentNode.Text);
                currentNode.Select();
            }
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            TreeNode tn = MyTreeView.SelectedNode;
            TreeNode ftn = MyTreeView.SelectedNode.Parent;
            int index = ftn.ChildNodes.IndexOf(tn);
            if (index + 1 <ftn.ChildNodes.Count)
            {
                TreeNode currentNode = ftn.ChildNodes[index + 1];
                Response.Write(currentNode.Text);
                currentNode.Select();
            }
        }为了保证程序的严谨,应该在为选任何节点之前把两个按钮设置为不可选
    然后在TREEVIEW的SelectedNodeChanged事件下,把按钮设置为可选
      

  6.   


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:TreeView ID="MyTreeView" Runat="server" OnSelectedNodeChanged="MyTreeView_SelectedNodeChanged" ShowLines="True">
      <Nodes>
        <asp:TreeNode Value="Child1" Expanded="True" Text="1">
          <asp:TreeNode Value="1" Text="A"/>
          <asp:TreeNode Value="2" Text="B" />
          <asp:TreeNode Value="3" Text="C" />
          <asp:TreeNode Value="4" Text="D" />
          <asp:TreeNode Value="5" Text="E" />
          <asp:TreeNode Value="6" Text="F" />
          <asp:TreeNode Value="7" Text="G" />
          <asp:TreeNode Value="8" Text="H" />
        </asp:TreeNode>
        <asp:TreeNode Value="Child2" Text="2" />
        <asp:TreeNode Value="Child3" Expanded="True" Text="3">
          <asp:TreeNode Value="Grandchild1" Text="A" />
        </asp:TreeNode>
      </Nodes>
            <SelectedNodeStyle BackColor="#FF8080" />
    </asp:TreeView>
            <asp:Button ID="Button1" runat="server" Text="上" OnClick="Button1_Click" Enabled="False" />
            <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="下" Enabled="False" />
        </div>
        </form>
    </body>
    </html>[code=C#]
     protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void MyTreeView_SelectedNodeChanged(object sender, EventArgs e)
        {
            Button1.Enabled = true;
            Button2.Enabled = true;
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            TreeNode tn = MyTreeView.SelectedNode;
            TreeNode ftn = MyTreeView.SelectedNode.Parent;
            int index=ftn.ChildNodes.IndexOf(tn);
            if (index - 1 >= 0)
            {
                TreeNode currentNode = ftn.ChildNodes[index - 1];
                Response.Write(currentNode.Text);
                currentNode.Select();
            }
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            TreeNode tn = MyTreeView.SelectedNode;
            TreeNode ftn = MyTreeView.SelectedNode.Parent;
            int index = ftn.ChildNodes.IndexOf(tn);
            if (index + 1 <ftn.ChildNodes.Count)
            {
                TreeNode currentNode = ftn.ChildNodes[index + 1];
                Response.Write(currentNode.Text);
                currentNode.Select();
            }
        }
    [/code]