在treeview中读取数据库的数据 本帖最后由 lzbjackwsm 于 2014-11-26 16:45:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/yangmingxing980/article/details/37656603 这个初始化一个TreeView,然后写几个事件选中一个节点,点击删除,弹出对话框,确认就删除,同时删除数据库,刷新页面,修改同理;添加,选中一个节点,弹出一个页面,给个选项添加子节点还是兄弟节点,然后添加就行了;如果想要那种可以拖动修改什么的,就不是treeview可以完成的了,就需要js另外开发控件了; 在TreeView中读取数据库数据显示在节点和父节点//从根节点开始递归填充TreeView控件 protected SqlConnection myConn; protected SqlDataAdapter myAdapter; protected DataSet data; protected string query;protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //获取数据连接语句,并创建数据库连接对象 myConn = DBClass.GetConnection(); CreateDataSet(); InitTree(TreeView1.Nodes, "0"); } }//codego.net/tags/11/1///从DataSet中取数据建树 public DataSet CreateDataSet() { query = "select * from tbTree"; myAdapter = new SqlDataAdapter(query, myConn); data = new DataSet(); myAdapter.Fill(data, "tree"); return data; } //从根节点开始递归调用显示子树 public void InitTree(TreeNodeCollection Nds, string parentId) { TreeNode NewNode; //data为存储建树数据信息的数据集 //用父节点进行筛选数据集中信息 DataRow[] rows = data.Tables[0].Select("parent_Id='" + parentId + "'"); foreach (DataRow row in rows) { NewNode = new TreeNode(row["title"].ToString(), //设置父节点 row["Files_Id"].ToString(), "images/1.gif", row["NavigateUrl"].ToString(), ""); Nds.Add(NewNode); InitTree(NewNode.ChildNodes, row["Files_Id"].ToString());//添加子节点 } } protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e) { int nodeId = Convert.ToInt32(TreeView1.SelectedValue);//获取TreeView控件选择的值 string url = DBClass.GetUrl(nodeId);//获取指定地址 Response.Redirect(url.ToString());//转到指定页 } //利用存储过程从数据库中获取TreeView中某个节点的关联地址public static GetUrl(int filesID){ SqlConnection myConnection = GetConnection(); SqlCommand myCommand = new SqlCommand("GetUrl",myConnection);myCommand.CommandType=ConnandType.StoredProcedure;//添加参数SqlParameter FilsesId = new SqlParameter("@FilesId" , SqlDbType.Int,4);FilsesId.Value = filesId;myCommand.Parameters.Add(FilsesId);//添加参数SqlParameter Url = new SqlParameter("@Url", SqlDbType.NVarChar,100);Url.Direction = ParameterDirection.Output;myConnection.Open();myCommand.ExecuteNonQuery();string url Url.Value.ToString();myCommand.Dispose();myConnection.Dispose();return url;} 一条sql语句出现在datagrid的分页 问题 紧急求助asp.net2.0程序连接sqlserver2000数据库出现问题 怎样查询一个字段的值包含一个字符串的记录? 一个很简单的添加数据的问题 求一个XSL 在线等 控制强类型的DataSet中的数据不更新到数据库 为什么IP不正确? 着急请教,高手请进:文件上传不成功!(分不够,再加) MVC控制器与视图 删除聊天记录 用户代码未处理 NullReferenceException 未能正确加载解决方案中的一个或多个项目
选中一个节点,点击删除,弹出对话框,确认就删除,同时删除数据库,刷新页面,修改同理;
添加,选中一个节点,弹出一个页面,给个选项添加子节点还是兄弟节点,然后添加就行了;
如果想要那种可以拖动修改什么的,就不是treeview可以完成的了,就需要js另外开发控件了;
//从根节点开始递归填充TreeView控件
protected SqlConnection myConn;
protected SqlDataAdapter myAdapter;
protected DataSet data;
protected string query;
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
//获取数据连接语句,并创建数据库连接对象
myConn = DBClass.GetConnection();
CreateDataSet();
InitTree(TreeView1.Nodes, "0");
} }//codego.net/tags/11/1/
//从DataSet中取数据建树
public DataSet CreateDataSet()
{
query = "select * from tbTree";
myAdapter = new SqlDataAdapter(query, myConn);
data = new DataSet();
myAdapter.Fill(data, "tree");
return data; }
//从根节点开始递归调用显示子树
public void InitTree(TreeNodeCollection Nds, string parentId)
{
TreeNode NewNode;
//data为存储建树数据信息的数据集
//用父节点进行筛选数据集中信息
DataRow[] rows = data.Tables[0].Select("parent_Id='" + parentId + "'");
foreach (DataRow row in rows)
{ NewNode = new
TreeNode(row["title"].ToString(), //设置父节点
row["Files_Id"].ToString(), "images/1.gif", row["NavigateUrl"].ToString(), "");
Nds.Add(NewNode);
InitTree(NewNode.ChildNodes, row["Files_Id"].ToString());//添加子节点
}
}
protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e)
{
int nodeId = Convert.ToInt32(TreeView1.SelectedValue);//获取TreeView控件选择的值
string url = DBClass.GetUrl(nodeId);//获取指定地址
Response.Redirect(url.ToString());//转到指定页
}
//利用存储过程从数据库中获取TreeView中某个节点的关联地址
public static GetUrl(int filesID)
{
SqlConnection myConnection = GetConnection();
SqlCommand myCommand = new SqlCommand("GetUrl",myConnection);
myCommand.CommandType=ConnandType.StoredProcedure;
//添加参数
SqlParameter FilsesId = new SqlParameter("@FilesId" , SqlDbType.Int,4);
FilsesId.Value = filesId;
myCommand.Parameters.Add(FilsesId);
//添加参数
SqlParameter Url = new SqlParameter("@Url", SqlDbType.NVarChar,100);
Url.Direction = ParameterDirection.Output;
myConnection.Open();
myCommand.ExecuteNonQuery();
string url Url.Value.ToString();
myCommand.Dispose();
myConnection.Dispose();
return url;
}