从数据库中读取所有数据动态生成TreeView目录,然后根据查询条件生成%
场景:急初始化从数据库中读取所有数据动态生成TreeView目录,然后根据查询条件生成相应的树型结构,该怎么解决
急.....初始化从数据库中读取所有数据动态生成TreeView目录,然后根据查询条件生成相应的树型结构
目录树至少有四级,初始化从数据库中读取所有数据动态生成TreeView目录,然后可以根据查询条件生成相应的树型结构,并指定节点相应的链接页面.
现在存在的问题是,生成出来的节点查询后无法动态生成相应链接,而且初始化生成的节点链接的ID值都不正确.(代码如下)
//递归绑定同一个表数据
private void InitTree()
{
DataTable dt = GetTreeViewTable();
DataView dv = new DataView(dt);
string Gvalue, bvalue, dvalue, hvalue;
Gvalue = DwGdj.SelectedValue.ToString();
bvalue = DwBdz.SelectedValue.ToString();
dvalue = Dwdy.SelectedValue.ToString();
hvalue = Dwhy.SelectedValue.ToString();
if (Gvalue != " ") { dv.RowFilter = "SubBureauid= ' " + Gvalue + " ' "; }
if (bvalue != " ") { dv.RowFilter = "tsid= ' " + bvalue + " ' "; }
if (dvalue != " ") { dv.RowFilter = "vrid= ' " + dvalue + " ' "; }
if (hvalue != " ") { dv.RowFilter = "tradeid= ' " + hvalue + " ' "; }
if (Gvalue == " " & bvalue == " " & dvalue == " " & hvalue == " ") { dv.RowFilter = "[Parent]= '0 ' "; }
string sUrl = string.Empty;
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
if (WasteGroup.Checked == true)
{
node.Text = drv[ "WGName "].ToString();
node.Value = drv[ "WGid "].ToString();
node.ToolTip = drv[ "WGName "].ToString();
}
if(TotalGroup.Checked == true)
{
node.Text = drv[ "SGName "].ToString();
node.Value = drv[ "SGid "].ToString();
node.ToolTip = drv[ "SGName "].ToString();
}
node.Expanded = true;
TreeGroup.Nodes.Add(node);
AddReplies(dt,node);
}
}
//获取查询条件并将结果赋给DataTable
private DataTable GetTreeViewTable()
{
string Gvalue, bvalue, dvalue, hvalue;
Gvalue = DwGdj.SelectedValue.ToString();
bvalue = DwBdz.SelectedValue.ToString();
dvalue = Dwdy.SelectedValue.ToString();
hvalue = Dwhy.SelectedValue.ToString();
string TableName= " ";
if (WasteGroup.Checked == true) { TableName = "WasteGroup "; }else{ TableName = "StatisticGroup "; }
SqlConnection strconn = Conn.CreateConnection();
strconn.Open();
string sql = "select * from " + TableName + " where 1=1 ";
if (Gvalue != " ") { sql = sql + "And SubBureauid = " + Gvalue; }
if (bvalue != " ") { sql = sql + "And tsid = " + bvalue; }
if (dvalue != " ") { sql = sql + "And vrid = " + dvalue; }
if (hvalue != " ") { sql = sql + "And tradeid = " + hvalue; }
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand(sql, strconn);
DataTable dt = new DataTable();
da.Fill(dt);
strconn.Close();
return dt;
}
//生成目录树
private void AddReplies(DataTable dt, TreeNode node)
{
string sUrl = string.Empty;
DataView dv = new DataView(dt);
dv.RowFilter = "[Parent]= ' "+node.Value+ " ' ";
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();
if (WasteGroup.Checked == true)
{
replyNode.Text = row[ "WGName "].ToString();
replyNode.Value = row[ "WGid "].ToString();
replyNode.ToolTip = row[ "WGName "].ToString();
string wgid = row[ "wgid "].ToString();
sUrl = "GroupView.aspx?id= " + row[ "WGid "].ToString() + "&Name= " + row[ "WGName "].ToString() + "&tid= " + "1 ";
}
else
{
replyNode.Text = row[ "SGName "].ToString();
replyNode.Value = row[ "SGid "].ToString();
replyNode.ToolTip = row[ "SGName "].ToString();
sUrl = "GroupView.aspx?id= " + row[ "SGid "].ToString() + "&Name= " + row[ "SGName "].ToString() + "&tid= " + "0 ";
}
replyNode.Expanded = true;
node.NavigateUrl = sUrl;
node.Target = "mainFrame ";
node.ChildNodes.Add(replyNode);
if (node.ChildNodes.Count > 0)
{
for (int j = 0; j < node.ChildNodes.Count; j++)
{
node.ChildNodes[j].NavigateUrl = sUrl;
node.ChildNodes[j].Target = "mainFrame ";
}
}
AddReplies(dt,replyNode);
}
}
------解决方案--------------------
睡觉喽,
帮你顶一下,明天再看。
------解决方案--------------------
帮你顶一下
急.....初始化从数据库中读取所有数据动态生成TreeView目录,然后根据查询条件生成相应的树型结构
目录树至少有四级,初始化从数据库中读取所有数据动态生成TreeView目录,然后可以根据查询条件生成相应的树型结构,并指定节点相应的链接页面.
现在存在的问题是,生成出来的节点查询后无法动态生成相应链接,而且初始化生成的节点链接的ID值都不正确.(代码如下)
//递归绑定同一个表数据
private void InitTree()
{
DataTable dt = GetTreeViewTable();
DataView dv = new DataView(dt);
string Gvalue, bvalue, dvalue, hvalue;
Gvalue = DwGdj.SelectedValue.ToString();
bvalue = DwBdz.SelectedValue.ToString();
dvalue = Dwdy.SelectedValue.ToString();
hvalue = Dwhy.SelectedValue.ToString();
if (Gvalue != " ") { dv.RowFilter = "SubBureauid= ' " + Gvalue + " ' "; }
if (bvalue != " ") { dv.RowFilter = "tsid= ' " + bvalue + " ' "; }
if (dvalue != " ") { dv.RowFilter = "vrid= ' " + dvalue + " ' "; }
if (hvalue != " ") { dv.RowFilter = "tradeid= ' " + hvalue + " ' "; }
if (Gvalue == " " & bvalue == " " & dvalue == " " & hvalue == " ") { dv.RowFilter = "[Parent]= '0 ' "; }
string sUrl = string.Empty;
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
if (WasteGroup.Checked == true)
{
node.Text = drv[ "WGName "].ToString();
node.Value = drv[ "WGid "].ToString();
node.ToolTip = drv[ "WGName "].ToString();
}
if(TotalGroup.Checked == true)
{
node.Text = drv[ "SGName "].ToString();
node.Value = drv[ "SGid "].ToString();
node.ToolTip = drv[ "SGName "].ToString();
}
node.Expanded = true;
TreeGroup.Nodes.Add(node);
AddReplies(dt,node);
}
}
//获取查询条件并将结果赋给DataTable
private DataTable GetTreeViewTable()
{
string Gvalue, bvalue, dvalue, hvalue;
Gvalue = DwGdj.SelectedValue.ToString();
bvalue = DwBdz.SelectedValue.ToString();
dvalue = Dwdy.SelectedValue.ToString();
hvalue = Dwhy.SelectedValue.ToString();
string TableName= " ";
if (WasteGroup.Checked == true) { TableName = "WasteGroup "; }else{ TableName = "StatisticGroup "; }
SqlConnection strconn = Conn.CreateConnection();
strconn.Open();
string sql = "select * from " + TableName + " where 1=1 ";
if (Gvalue != " ") { sql = sql + "And SubBureauid = " + Gvalue; }
if (bvalue != " ") { sql = sql + "And tsid = " + bvalue; }
if (dvalue != " ") { sql = sql + "And vrid = " + dvalue; }
if (hvalue != " ") { sql = sql + "And tradeid = " + hvalue; }
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand(sql, strconn);
DataTable dt = new DataTable();
da.Fill(dt);
strconn.Close();
return dt;
}
//生成目录树
private void AddReplies(DataTable dt, TreeNode node)
{
string sUrl = string.Empty;
DataView dv = new DataView(dt);
dv.RowFilter = "[Parent]= ' "+node.Value+ " ' ";
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();
if (WasteGroup.Checked == true)
{
replyNode.Text = row[ "WGName "].ToString();
replyNode.Value = row[ "WGid "].ToString();
replyNode.ToolTip = row[ "WGName "].ToString();
string wgid = row[ "wgid "].ToString();
sUrl = "GroupView.aspx?id= " + row[ "WGid "].ToString() + "&Name= " + row[ "WGName "].ToString() + "&tid= " + "1 ";
}
else
{
replyNode.Text = row[ "SGName "].ToString();
replyNode.Value = row[ "SGid "].ToString();
replyNode.ToolTip = row[ "SGName "].ToString();
sUrl = "GroupView.aspx?id= " + row[ "SGid "].ToString() + "&Name= " + row[ "SGName "].ToString() + "&tid= " + "0 ";
}
replyNode.Expanded = true;
node.NavigateUrl = sUrl;
node.Target = "mainFrame ";
node.ChildNodes.Add(replyNode);
if (node.ChildNodes.Count > 0)
{
for (int j = 0; j < node.ChildNodes.Count; j++)
{
node.ChildNodes[j].NavigateUrl = sUrl;
node.ChildNodes[j].Target = "mainFrame ";
}
}
AddReplies(dt,replyNode);
}
}
------解决方案--------------------
睡觉喽,
帮你顶一下,明天再看。
------解决方案--------------------
帮你顶一下