我的程序是这样的:
protected void Page_Load(object sender, EventArgs e)
{
string teacherid = Session["userid"].ToString();
if (!IsPostBack)
{
fill();
DataView dv = drv("select distinct * from Course where TeacherID ='" + teacherid + "'");
foreach (DataRowView datav in dv)
{
TreeNode tn = new TreeNode();
tn.Text = datav["CourseName"].ToString();
tn.Value = datav["StudentID"].ToString();
tn.Expanded = true;
TreeView1.Nodes.Add(tn);
add(tn);
}
}
}
private void add(TreeNode tn)
{
string studentid = tnn.Value;
DataView dv = drv("select * from Student where StudentID='" + studentid + "'");
foreach (DataRowView datav in dv)
{
TreeNode tnn = new TreeNode();
tnn.Text = datav["StudentRank"].ToString();
tnn.Value = datav["StudentID"].ToString();
tn.ChildNodes.Add(tnn);
// add2(tnn);
}
}
想实现第一级是显示课程名字,第2级显示年级,第3级显示班级,第4级显示学生名字,现在只添加了课程名字节点和年级节点,但我想再加两个节点,想再调用2个新函数来添加,但不知道怎么写这2个新函数?还有我想问在“protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)”里面我可不可以在得到的TreeView1.SelectedNode.Value值里面知道得到的值是年级啊?还是班级啊?还是学生名字啊?怎么判断?希望高手们可以把程序写得详细点,帮助理解,万分感谢
protected void Page_Load(object sender, EventArgs e)
{
string teacherid = Session["userid"].ToString();
if (!IsPostBack)
{
fill();
DataView dv = drv("select distinct * from Course where TeacherID ='" + teacherid + "'");
foreach (DataRowView datav in dv)
{
TreeNode tn = new TreeNode();
tn.Text = datav["CourseName"].ToString();
tn.Value = datav["StudentID"].ToString();
tn.Expanded = true;
TreeView1.Nodes.Add(tn);
add(tn);
}
}
}
private void add(TreeNode tn)
{
string studentid = tnn.Value;
DataView dv = drv("select * from Student where StudentID='" + studentid + "'");
foreach (DataRowView datav in dv)
{
TreeNode tnn = new TreeNode();
tnn.Text = datav["StudentRank"].ToString();
tnn.Value = datav["StudentID"].ToString();
tn.ChildNodes.Add(tnn);
// add2(tnn);
}
}
想实现第一级是显示课程名字,第2级显示年级,第3级显示班级,第4级显示学生名字,现在只添加了课程名字节点和年级节点,但我想再加两个节点,想再调用2个新函数来添加,但不知道怎么写这2个新函数?还有我想问在“protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)”里面我可不可以在得到的TreeView1.SelectedNode.Value值里面知道得到的值是年级啊?还是班级啊?还是学生名字啊?怎么判断?希望高手们可以把程序写得详细点,帮助理解,万分感谢
解决方案 »
- 如何将aspx.cs编译成dll?
- 关于asp.net中上传文件问题
- 请问应该怎么把一个string类转换成stream类
- 一个简单的问题
- 我有一个全站程序,他的数据库是access的,可选"查询"项,如下网址所示,出现了很多表,(我以前做网站时都没在"查询"项内建过表,都是直接在表
- GridView导出excel问题
- 对DATAGRID与DATALIST分页的一点见解.
- VS2005 在浏览器中查看和启动调试 有什么不同?
- 用什么函数可以在操作完EXCEL后在进程中关闭EXCEL.exe
- 为什么总是出现不能加载web form类的错误?在线等待
- 高手留步,多国语疑问
- 精简代码-这句是不是没用?
//一个是学生表(StudentID,StudentName,StudentRank,StudentClass)
//一个是课程表(CourseID,CourseName,TeacherID,StudentID)
protected void formTree()
{
string teacherid = Session["userid"].ToString();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CHATConnectionString"].ConnectionString))
{
using (SqlDataAdapter da = new SqlDataAdapter("SELECT CourseID,CourseName FROM course_table WHERE TeacherID='" +
teacherid + "'", conn))
{
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["CourseName"];
tn.Value = dr["CourseID"];
this.TreeView1.Nodes.Add(tn);
addRank(tn);
}
}
}
} protected void addRank(TreeNode parentNode)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CHATConnectionString"].ConnectionString))
{
using (SqlDataAdapter da = new SqlDataAdapter("SELECT StudentRank FROM student_table " +
"INNER JOIN course_table ON course_table.StudentID=student_table.StudentID " +
"WHERE course_table.TeacherID='" + teacherid + "' AND course_table.CourseID='" + parentNode.Value + "'", conn))
{
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["StudentRank"];
tn.Value = dr["StudentRank"];
parentNode.ChildNodes.Add(tn);
addClass(tn);
}
}
}
} protected void addClass(TreeNode parentNode)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CHATConnectionString"].ConnectionString))
{
using (SqlDataAdapter da = new SqlDataAdapter("SELECT StudentClass FROM student_table " +
"INNER JOIN course_table ON course_table.StudentID=student_table.StudentID " +
"WHERE course_table.TeacherID='" + teacherid + "' " +
"AND course_table.CourseID='" + parentNode.Parent.Value + "' " +
"AND student_table.StudentRank='" + parentNode.Value + "'", conn))
{
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["StudentClass"];
tn.Value = dr["StudentClass"];
parentNode.ChildNodes.Add(tn);
addStudent(tn);
}
}
}
} protected void addStudent(TreeNode parentNode)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CHATConnectionString"].ConnectionString))
{
using (SqlDataAdapter da = new SqlDataAdapter("SELECT StudentID,StudentName FROM student_table " +
"INNER JOIN course_table ON course_table.StudentID=student_table.StudentID " +
"WHERE course_table.TeacherID='" + teacherid + "' " +
"AND course_table.CourseID='" + parentNode.Parent.Parent.Value + "' " +
"AND student_table.StudentRank='" + parentNode.Parent.Value + "' " +
"AND student_table.StudentClass='" + parentNode.Value + "'", conn))
{
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["StudentName"];
tn.Value = dr["StudentID"];
parentNode.ChildNodes.Add(tn);
}
}
}
}
递归。可参考:http://topic.csdn.net/u/20080927/14/79c8be6e-8dc3-4467-aef9-71f6071ecc2a.html