我正在使用 ASP.NET 4.0 在 C# 中开发一个 Web 应用程序。要求是我需要显示组织的分层信息。例如,一位高级经理将在他/她的下方有一位经理,一位经理将有团队负责人,每个团队负责人都会在他/她的下方有员工。相同的结构需要在 TreeView 中显示。TreeView 中的每个节点都将显示员工的姓名和节点中的记录计数(此计数是从数据库中填充的)。计数数据需要显示在TreeView对应节点下的表格控件中。如果计数是三个记录,我需要根据所选节点 ID 显示一个包含三行的表,这些数据是从数据库中获取的。此表应仅在节点下。
以下是代码:
public class TreeNodeEx : TreeNode
{
protected override void RenderPostText(HtmlTextWriter writer)
{
string connectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString().Trim();
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("select * from TableA where Name='Krishna'", con);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
Table table1 = new Table();
int rows = 1;
int cols = 5;
for (int j = 0; j < rows; j++)
{
TableRow r = new TableRow();
for (int i = 0; i < cols; i++)
{
TableCell c = new TableCell();
c.Controls.Add(new LiteralControl(ds.Tables[0].Rows[j][i].ToString()));
r.Cells.Add(c);
}
table1.Rows.Add(r);
}
table1.RenderControl(writer);
base.RenderPostText(writer);
}
}
在节点下调用的代码是:
TreeNodeEx n = new TreeNodeEx();
parent.ChildNodes.Add(n);
这是添加计数的代码:
child.Text = dr["User_Given_Name"].ToString() + " [Records # (" + dsn.Tables[0].Rows[0][0].ToString() + ")]"; child.Value = dr["User_Email"].ToString().Trim();