C#实现TreeView节点点击触发事件
publicpartialclass_Default:System.Web.UI.Page{SqlConnectionconne=newSqlConnection("da...
public partial class _Default : System.Web.UI.Page
{
SqlConnection conne = new SqlConnection("data source=.;initial catalog=sy;integrated security=sspi");
DataSet datast = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)//在不加这一句之前,每次刷新一下页面,就会多一个树控件出来,一直叠加.加了这一句之后,就不会重复加载了.
{
conne.Open();
this.createDataSet();
conne.Close();
this.InitTree(TreeView1.Nodes, "0");
conne.Close();
}
private DataSet createDataSet()//返回数据库表
{
datast = new DataSet();
string sqlStr = "select * from Tree ";
SqlDataAdapter cmdSelect = new SqlDataAdapter(sqlStr,conne);
cmdSelect.Fill(datast, "Tree");
return datast;
}
protected void InitTree(TreeNodeCollection Nds, string parentId)//用递归方法动态生成节点
{
DataView dv = new DataView();
TreeNode tmpNode;
dv.Table =datast.Tables["Tree"];
dv.RowFilter = "ParentId=" + "'" + parentId + "'";
foreach (DataRowView drv in dv)
{
tmpNode = new TreeNode();
tmpNode.Value = drv["Id"].ToString();
tmpNode.Text = drv["Name"].ToString();
//tmpNode.NavigateUrl = "#";//设置超链接
tmpNode.SelectAction = TreeNodeSelectAction.None;//禁用超链接属性
tmpNode.ExpandAll();//展开所有子节点
Nds.Add(tmpNode);
this.InitTree(tmpNode.ChildNodes, tmpNode.Value);
}
}
}
不是通过修改属性之类生成树状图,通过绑定数据库,现在只能展开树,不能点击某一个节点,更不能点某一个节点链接到其他页面,请教怎么写代码产生节点链接!!
a5202003说的是这样的嘛,我要的效果是每个节点在我鼠标放在上面的时候,有像超级链接的下划线,当我点击的时候,就可以链接到我想要的页面!加上一楼的那一句代码可以,但是没有对选中哪一个节点进行判断.. 展开
{
SqlConnection conne = new SqlConnection("data source=.;initial catalog=sy;integrated security=sspi");
DataSet datast = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)//在不加这一句之前,每次刷新一下页面,就会多一个树控件出来,一直叠加.加了这一句之后,就不会重复加载了.
{
conne.Open();
this.createDataSet();
conne.Close();
this.InitTree(TreeView1.Nodes, "0");
conne.Close();
}
private DataSet createDataSet()//返回数据库表
{
datast = new DataSet();
string sqlStr = "select * from Tree ";
SqlDataAdapter cmdSelect = new SqlDataAdapter(sqlStr,conne);
cmdSelect.Fill(datast, "Tree");
return datast;
}
protected void InitTree(TreeNodeCollection Nds, string parentId)//用递归方法动态生成节点
{
DataView dv = new DataView();
TreeNode tmpNode;
dv.Table =datast.Tables["Tree"];
dv.RowFilter = "ParentId=" + "'" + parentId + "'";
foreach (DataRowView drv in dv)
{
tmpNode = new TreeNode();
tmpNode.Value = drv["Id"].ToString();
tmpNode.Text = drv["Name"].ToString();
//tmpNode.NavigateUrl = "#";//设置超链接
tmpNode.SelectAction = TreeNodeSelectAction.None;//禁用超链接属性
tmpNode.ExpandAll();//展开所有子节点
Nds.Add(tmpNode);
this.InitTree(tmpNode.ChildNodes, tmpNode.Value);
}
}
}
不是通过修改属性之类生成树状图,通过绑定数据库,现在只能展开树,不能点击某一个节点,更不能点某一个节点链接到其他页面,请教怎么写代码产生节点链接!!
a5202003说的是这样的嘛,我要的效果是每个节点在我鼠标放在上面的时候,有像超级链接的下划线,当我点击的时候,就可以链接到我想要的页面!加上一楼的那一句代码可以,但是没有对选中哪一个节点进行判断.. 展开
3个回答
展开全部
其实不是点击节点触发,而是在节点展开的时候触发,按照这个思路去找,记得TreeView里有这个事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
tmpNode.NavigateUrl=drv["Url"].ToString()//设置节点的超链接
tmpNode.Target=drv["Target"].ToString()//设置节点的Target,可以使一个iframe得name属性的值
不需要判断是哪个节点啊,因为你的链接url存在了数据库里面,每个url本来就对应着某个特定的节点啊
tmpNode.Target=drv["Target"].ToString()//设置节点的Target,可以使一个iframe得name属性的值
不需要判断是哪个节点啊,因为你的链接url存在了数据库里面,每个url本来就对应着某个特定的节点啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询