private void FormCustomerInformation_Load(object sender, EventArgs e)
{
string sqlstr = "select * from T_BasicInformation_District";
SqlDataAdapter SDA = new SqlDataAdapter(sqlstr,public_sql.getcon());
DataTable DT = new DataTable();
SDA.Fill(DT);
for (int i = 0; i < DT.Rows.Count; i++)
{
TreeNode TN = new TreeNode();
TN.Text = DT.Rows[i][1].ToString();
TN.Tag = DT.Rows[i][0].ToString();
treeView1.Nodes.Add(TN);
addchildmenu1(TN); }
this.shuaxindgv();
}
public void addchildmenu1(TreeNode node)
{
string sqlstrl = "SELECT FCompanyName,FDistrictID from T_BasicInformation_Customer";
SqlDataAdapter sda = new SqlDataAdapter(sqlstrl, public_sql.getcon());
DataTable dt = new DataTable();
sda.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode TN = new TreeNode();
TN.Text = dt.Rows[i][0].ToString();
TN.Tag = dt.Rows[i][1].ToString();
node.Nodes.Add(TN);
做标记的地方 具有相同的标签
怎么让子节点的标签 与 父节点标签 相同时
显示在父节点下??
{
string sqlstr = "select * from T_BasicInformation_District";
SqlDataAdapter SDA = new SqlDataAdapter(sqlstr,public_sql.getcon());
DataTable DT = new DataTable();
SDA.Fill(DT);
for (int i = 0; i < DT.Rows.Count; i++)
{
TreeNode TN = new TreeNode();
TN.Text = DT.Rows[i][1].ToString();
TN.Tag = DT.Rows[i][0].ToString();
treeView1.Nodes.Add(TN);
addchildmenu1(TN); }
this.shuaxindgv();
}
public void addchildmenu1(TreeNode node)
{
string sqlstrl = "SELECT FCompanyName,FDistrictID from T_BasicInformation_Customer";
SqlDataAdapter sda = new SqlDataAdapter(sqlstrl, public_sql.getcon());
DataTable dt = new DataTable();
sda.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode TN = new TreeNode();
TN.Text = dt.Rows[i][0].ToString();
TN.Tag = dt.Rows[i][1].ToString();
node.Nodes.Add(TN);
做标记的地方 具有相同的标签
怎么让子节点的标签 与 父节点标签 相同时
显示在父节点下??
解决方案 »
- ODP.NET 连接Oracle 批量插入操作 报 无效的月份【已解决,来个接分的,速度了。。。】
- 请问在窗体应用程序中如何使用printdialog控件打印文档?
- 关于SerialPort类的读取问题
- comboBox选项改变如何获取之前的选项?
- SQL2005 修改密码的问题
- 如何在C#中将EXCELL文件导入SQL server 2000中?
- windows media player 的FileName 属性,怎么不能用?还有为什么播放时 会重新弹出一个播放器而不在原来那里播放呢?
- 在C#中调用存储过程时出现下面的错误
- 100分再求:怎样用自己的代码实现QQ下线、上线、隐身等????
- httpWebRequest.Headers.Add( "Accept","*/*" );出错
- C#用WCF通信的心跳包怎么做啊?高手
- 数据库的查询,希望各位大侠能帮帮我
/// <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); }
}
TreeNode t = new TreeNode();
t.Text = "图书管理系统"; //定义一个图书信息管理节点。
TreeNode tc = new TreeNode();
tc.Text ="图书信息管理";
t.ChildNodes.Add(tc); TreeNode tc1 = new TreeNode();
tc1.Text = "增加图书信息";
tc1.NavigateUrl = "insertBookInformation.aspx";
tc1.Target = "main";
tc.ChildNodes.Add(tc1); TreeNode tc2 = new TreeNode();
tc2.Text = "查询图书信息";
tc2.NavigateUrl = "selectBookInformation.aspx";
tc2.Target = "main";
tc.ChildNodes.Add(tc2);
private void button1_Click(object sender, EventArgs e)
{
dt = new DataTable();
dt.Columns.Add("ID",typeof(System.Int32));
dt.Columns.Add("ParentID",typeof(System.Int32));
dt.Columns.Add("Name"); DataRow dr = dt.NewRow();
dr[0] = 1;
dr[1] = 0;
dr[2] = "Test1";
dt.Rows.Add(dr); dr = dt.NewRow();
dr[0] = 2;
dr[1] = 0;
dr[2] = "Test2";
dt.Rows.Add(dr); dr = dt.NewRow();
dr[0] = 3;
dr[1] = 1;
dr[2] = "Test3";
dt.Rows.Add(dr); dr = dt.NewRow();
dr[0] = 4;
dr[1] = 2;
dr[2] = "Test4";
dt.Rows.Add(dr); dr = dt.NewRow();
dr[0] = 5;
dr[1] = 3;
dr[2] = "Test5";
dt.Rows.Add(dr); dr = dt.NewRow();
dr[0] = 6;
dr[1] = 5;
dr[2] = "Test6";
dt.Rows.Add(dr); DataRow[] drs = dt.Select("ParentID = 0");
TreeNode TopNode = null;
foreach (DataRow tmpdr in drs)
{
TopNode = new TreeNode();
TopNode.Text = tmpdr[2].ToString();
TopNode.Tag = tmpdr[0].ToString();
TopNode = GetNode(TopNode);
this.treeView1.Nodes.Add(TopNode);
} }
private TreeNode GetNode(TreeNode TopNode)
{
int ParentID = Convert.ToInt32( TopNode.Tag.ToString());
DataRow[] drs = dt.Select("ParentID = " + ParentID.ToString());
if (drs != null && drs.Length > 0)
{
TreeNode ChildNode = null;
foreach (DataRow dr in drs)
{
ChildNode = new TreeNode();
ChildNode.Text = dr[2].ToString();
ChildNode.Tag = dr[0].ToString();
ChildNode = GetNode(ChildNode);
TopNode.Nodes.Add(ChildNode);
}
return TopNode;
}
else
{
return TopNode;
}
}
呵呵,撮合着用
这样省点代码
TreeNode TopNode = null;
TopNode = new TreeNode();
TopNode.Text = "Test";
TopNode.Tag = 0;
TopNode = GetNode(TopNode);
this.treeView1.Nodes.Add(TopNode);