|
Used to create 3 level TreeView.
protected void PopNav() {
tvNav.Nodes.Clear();
DAL dLayer = new DAL();
DataSet ds = dLayer.GetNavCategory();
ds.Relations.Add("CatToProd", ds.Tables["Cat"].Columns["Category"], ds.Tables["Prod"].Columns["Category"]);
ds.Relations.Add("ProdToFile", ds.Tables["Prod"].Columns["productid"], ds.Tables["FileTypes"].Columns["productid"]);
TreeNode nodeCat;
TreeNode nodeProd;
TreeNode nodeFile;
foreach (DataRow rowCat in ds.Tables["Cat"].Rows)
{
nodeCat = new TreeNode();
nodeCat.Expanded = false;
nodeCat.SelectAction = TreeNodeSelectAction.Expand;
nodeCat.Text = rowCat["Category"].ToString();
tvNav.Nodes.Add(nodeCat);
foreach (DataRow rowProd in rowCat.GetChildRows("CatToProd"))
{
nodeProd = new TreeNode();
nodeProd.Expanded = false;
nodeProd.Text = rowProd["ShortDescription"].ToString();
nodeProd.Value = rowProd["productid"].ToString();
nodeCat.ChildNodes.Add(nodeProd);
foreach (DataRow rowFileType in rowProd.GetChildRows("ProdToFile"))
{
nodeFile = new TreeNode();
nodeFile.Text = rowFileType["FileType"].ToString();
nodeFile.Value = rowFileType["productid"].ToString();
nodeProd.ChildNodes.Add(nodeFile);
}
}
}
}
///////////////DAL method
public DataSet GetNavCategory()
{
DataSet ds = new DataSet();
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["RenewLifeConnStr"].ConnectionString);
string sql = @"dbo.GetAllCategories";
string sqlProd = @"dbo.GetAllCategoryDescriptions";
string sqlFileType = @"dbo.GetAllFileTypesByProduct";
SqlDataAdapter daCat = new SqlDataAdapter(sql, cn);
SqlDataAdapter daProd = new SqlDataAdapter(sqlProd, cn);
SqlDataAdapter daFileType = new SqlDataAdapter(sqlFileType, cn);
daCat.SelectCommand.CommandType = CommandType.StoredProcedure;
daCat.SelectCommand.CommandTimeout = 20000;
daProd.SelectCommand.CommandType = CommandType.StoredProcedure;
daProd.SelectCommand.CommandTimeout = 20000;
daFileType.SelectCommand.CommandType = CommandType.StoredProcedure;
daFileType.SelectCommand.CommandTimeout = 20000;
using (cn)
{
cn.Open();
daCat.Fill(ds, "Cat");
daProd.Fill(ds, "Prod");
daFileType.Fill(ds, "FileTypes");
}
return ds;
}
|