我正在使用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();