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说的是这样的嘛,我要的效果是每个节点在我鼠标放在上面的时候,有像超级链接的下划线,当我点击的时候,就可以链接到我想要的页面!加上一楼的那一句代码可以,但是没有对选中哪一个节点进行判断..
展开
 我来答
百度网友1bdb267
2009-08-12 · TA获得超过344个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:205万
展开全部
那你把你想做链接的那一列设成模板列,在里面添加一个Linkbutton,把LinkButton的值等于你的数据库中的值就OK了.

if (!Page.IsPostBack)//在不加这一句之前,每次刷新一下页面,就会多一个树控件出来,一直叠加.加了这一句之后,就不会重复加载了.

IsPostBack是一个十分重要的方法,表示页面是否为第一次加载...
a5202003
2009-08-12 · TA获得超过2248个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:577万
展开全部
其实不是点击节点触发,而是在节点展开的时候触发,按照这个思路去找,记得TreeView里有这个事件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mozily
2009-08-12 · TA获得超过1789个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:388万
展开全部
tmpNode.NavigateUrl=drv["Url"].ToString()//设置节点的超链接
tmpNode.Target=drv["Target"].ToString()//设置节点的Target,可以使一个iframe得name属性的值

不需要判断是哪个节点啊,因为你的链接url存在了数据库里面,每个url本来就对应着某个特定的节点啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式