例
1
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
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
现在获取不到当前节点是个问题!!!!!
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];
.Index; 点后边没有啊```` 写不出来!强行写完后显示红色下划线!...
http://www.9iyou.com/Program_Data/cshap-105230.html
将int i = treeView1.SelectedNode.Index; 替换成
int i = treeView1.Nodes.IndexOf(treeView1.SelectedNode);
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事件下,把按钮设置为可选
<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]