谁有动态绑定树的代码实例 注释清楚点的
解决方案 »
- 在08系统上,执行copy命令!
- C#组件类中using System.Windows错误
- 在c#WinForms 自定义控件TextBox里,如何在按下DELETE键之后光标停在删除位置(我遇到的问题是按下DELETE键之后光标自动跳到末尾去了)?
- 还是菜鸟问题!!高手快来拿分啊!
- 急问:System.IndexOutOfRangeException: 索引超出了数组界限
- 矩阵的运算程序
- 大家在csdn的首页都看到“it公司如此管理”新闻了吧?进来我告诉你们个秘密!
- 关于 C#删除之后的问题
- 求助怎么用C#实现RSA2048带RSA/ECB/oaepwithsha-512andmgf1padding填充的加密算法
- 中国女排3:2胜美国女排,夺冠在望!庆祝
- 如何获得一个整型数据的低八位和高八位?
- 如何用between 搜索 一段区间??
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
DataSet resultDS=New DataSet();
adapter.Fill(resultDS, "sysobject");
foreach(DataRow row in resultDS.Talbes["sysobject"].Rows)
{
sql="Select top 1 * From "+row["Name"].ToString();
adapter = new SqlDataAdapter(sql, conn);
adapter.Fill(resultDS, row["Name"].ToString());
TreeNode tn = new TreeNode();
tn.Name = row["Name"].ToString();
tn.Text = row["Name"].ToString();
treeView1.Nodes.Add(tn);
foreach(DataColumn col in resultDS.Talbes[row["Name"].ToString()].Columns)
{
TreeNode subtn = new TreeNode();
subtn.Name = col.ColumnName;
subtn.Text = col.ColumnName;
tn.Nodes.Add(subtn );
}}
{
if (!Page.IsPostBack)
{
DataSet dataTable = Common.SqlDAO.ExecuteDataset("select *from myTree where parentId=0",null);
for (int i = 0; i < dataTable.Tables[0].Rows.Count; i++)
{
TreeNode tn = new TreeNode();
tn.Text = dataTable.Tables[0].Rows[i]["text"].ToString();
tn.Value = dataTable.Tables[0].Rows[i]["Id"].ToString();
tn.NavigateUrl = dataTable.Tables[0].Rows[i]["TargetUrl"].ToString();
tn.Target = "_url";
TreeView1.Nodes.Add(tn);
this.CreateNodes(tn);
}
}
}
protected void CreateNodes(TreeNode node)
{
string sql = "select *from myTree where parentId=@parentId";
System.Data.SqlClient.SqlParameter[] p = new System.Data.SqlClient.SqlParameter[1];
p[0] = new System.Data.SqlClient.SqlParameter("@parentId",node.Value);
DataSet dsetChildNodes = Common.SqlDAO.ExecuteDataset(sql, p);
for (int i = 0; i < dsetChildNodes.Tables[0].Rows.Count; i++)
{
TreeNode childNode = new TreeNode();
childNode.Text = dsetChildNodes.Tables[0].Rows[i]["text"].ToString();
childNode.Value = dsetChildNodes.Tables[0].Rows[i]["id"].ToString();
childNode.Target = dsetChildNodes.Tables[0].Rows[i]["TargetUrl"].ToString();
childNode.NavigateUrl = dsetChildNodes.Tables[0].Rows[i]["TargetUrl"].ToString();
node.ChildNodes.Add(childNode);
this.CreateNodes(childNode);
}
}
//private void loadBind()
//{
// List<Tzx_Exam_SubjectInfo> l1 = Tzx_Exam_SubjectManager.GetTzx_Exam_SubjectInfoParent();
// for (int i = 0; i < l1.Count; i++)
// {
// TreeNode tn = new TreeNode(l1[i].SubjectId.ToString());
// tn.Text = l1[i].SubjectName;
// 、、 this.treeView1.Nodes.Add(tn);
// LoadBindSon(l1[i].SubjectId,tn);
// }
//}
//private static void LoadBindSon(int ParentId,TreeNode tn)
//{
// List<Tzx_Exam_SubjectInfo> l2 = Tzx_Exam_SubjectManager.GetTzx_Exam_SubjectInfoByParentId(ParentId);
// for (int j = 0; j < l2.Count; j++)
// {
// TreeNode t1 = new TreeNode(l2[j].SubjectId.ToString());
// t1.Text = l2[j].SubjectName;
// tn.Nodes.Add(t1);
// LoadBindSon(l2[j].SubjectId, t1);
// }
//}
动态绑定TreeView...
/// <summary>
/// 创建DataSet的方法
/// </summary>
/// <param name="nodes">TreeView的根节点</param>
/// <param name="ds">Dataset数据集合</param>
/// <param name="pid">节点的父</param>
private void CreateTreeView(TreeNodeCollection nodes, DataSet ds, int pid)
{
//定义筛选条件
string sql = string.Format("ParentID={0}", pid); //从Dataset中筛选符合条件的行的集合
DataRow[] drr = ds.Tables[0].Select(sql); //遍历获得行的集合
foreach (DataRow dr in drr)
{
//创建TreeView节点
TreeNode tnode = new TreeNode();
//添加到根节点中
nodes.Add(tnode);
//设置显示的文本
//tnode.ImageUrl = "images/foldericon1.gif";
tnode.Text = dr["PurName"].ToString();
tnode.Value = dr["PurID"].ToString();
//设置显示的路径
tnode.NavigateUrl = dr["PurURL"].ToString();
//递归调用方法
CreateTreeView(tnode.ChildNodes, ds, Convert.ToInt32(dr["PurID"]));
//从Dataset中删除已经添加的行,提高访问效率
ds.Tables[0].Rows.Remove(dr); }
}