关于treeview的事件 现在需要在treeview单击时触发数据加载,但是看来看去也没有onclick事件,有人说自己加TreeView1.Attributes.Add("onlclick", "NodeClick();"); 但是试了试,还是不行不知道如何搞了,请高手指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加个委托事件 试试委托事件 public event SelectedNodeChangedHandler Selected; protected void OnSelected(EventArgs e) { if (Selected != null) { Selected(this, e); } } protected void treeFileView_SelectedNodeChanged(object sender, EventArgs e) { SelectedFilePath = treeFileView.SelectedValue; Label1.Text = SelectedFilePath; this.OnSelected(e); } public event SelectedNodeChangedHandler Selected;这个应该放在什么地方? 你可以用selectIndexChange事件。 selectIndexChanged,执行完了yourTreeView.SelectedNode.Selected=false; 最高级的办法因该是1楼的方法,自己继承一个TreeView类。 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { deptTree.Nodes.Clear(); TreeNode rootNode = new TreeNode(); rootNode.Value = "0"; rootNode.Text = UnitConfigs.GetConfig().UnitName; rootNode.ImageUrl = UnitImage; rootNode.ImageToolTip = rootNode.Text; rootNode.SelectAction = TreeNodeSelectAction.Select; rootNode.Target = UnitTarget; if (!string.IsNullOrEmpty(Request.Url.Query)) { rootNode.NavigateUrl = DeptNavigateUrl + Request.Url.Query + string.Format("&DeptID={0}", 0); } else { rootNode.NavigateUrl = DeptNavigateUrl + string.Format("?DeptID={0}", 0); } BuildDeptTree(rootNode); deptTree.Nodes.Add(rootNode); /* while (rootNode.ChildNodes.Count > 0) { deptTree.Nodes.Add(rootNode.ChildNodes[0]); } */ deptTree.DataBind(); } } private void BuildDeptTree(TreeNode parentNode) { DepartmentBLL bll = new DepartmentBLL(); DataSet ds = bll.GetList(string.Format("deptParentID = {0} order by deptOrderNum desc", parentNode.Value)); foreach (DataRow dRow in ds.Tables[0].Rows) { TreeNode subNode = new TreeNode(); subNode.Value = dRow["deptID"].ToString(); subNode.Text = dRow["deptName"].ToString(); subNode.PopulateOnDemand = true; subNode.SelectAction = TreeNodeSelectAction.Select; subNode.ImageUrl = DeptImage; subNode.ImageToolTip = dRow["deptName"].ToString(); ; subNode.Target = DeptTarget; if (!string.IsNullOrEmpty(Request.Url.Query)) { subNode.NavigateUrl = DeptNavigateUrl + Request.Url.Query + string.Format("&DeptID={0}", dRow["deptID"]); } else { subNode.NavigateUrl = DeptNavigateUrl + string.Format("?DeptID={0}", dRow["deptID"]); } parentNode.ChildNodes.Add(subNode); } } protected void deptTree_TreeNodePopulate(object sender, TreeNodeEventArgs e) { BuildDeptTree(e.Node); } [Quote=引用 1 楼 suyiming 的回复:]加个委托事件 试试 委托事件 public event SelectedNodeChangedHandler Selected; protected void OnSelected(EventArgs e) { if (Selected != null) { Selected(this, e); } } protected void treeFileView_SelectedNodeChanged(object sender, EventArgs e) { SelectedFilePath = treeFileView.SelectedValue; …揭示这个错误怎么解决啊,能告诉一下吗?谢谢 CS0246: 找不到类型或命名空间名称“SelectedNodeChangedHandler”(是否缺少 using 指令或程序集引用?) ASP.NET 按钮自动跳转的问题 .net数据库提取 用程序怎么实现导出导入ORACLE的表空间 问下asp.net双语版网站(中文和俄文) 数据库该如何设计? 求高手来看看续传问题 谁做过chm格式的左边的树形菜单? 下载问题,出现乱码!求救(100分) 用javascript做了个菜单,如何能使菜单随着IE滚动条拖动而自动上下跟随移动,求代码或方法 石子分法?(后继石子合并法)? 请问下面这条SQL查询如何实现。 ★★★★★发个扯淡贴,明天光棍节,大家怎么过啊 Session_Start 和 Session_End 按照事件顺序应该放在什么位置?? 给我放一下
委托事件
public event SelectedNodeChangedHandler Selected; protected void OnSelected(EventArgs e)
{
if (Selected != null)
{
Selected(this, e);
}
} protected void treeFileView_SelectedNodeChanged(object sender, EventArgs e)
{
SelectedFilePath = treeFileView.SelectedValue;
Label1.Text = SelectedFilePath;
this.OnSelected(e);
}
这个应该放在什么地方?
{
if (!IsPostBack)
{
deptTree.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Value = "0";
rootNode.Text = UnitConfigs.GetConfig().UnitName;
rootNode.ImageUrl = UnitImage;
rootNode.ImageToolTip = rootNode.Text; rootNode.SelectAction = TreeNodeSelectAction.Select; rootNode.Target = UnitTarget;
if (!string.IsNullOrEmpty(Request.Url.Query))
{
rootNode.NavigateUrl = DeptNavigateUrl + Request.Url.Query + string.Format("&DeptID={0}", 0); }
else
{
rootNode.NavigateUrl = DeptNavigateUrl + string.Format("?DeptID={0}", 0); } BuildDeptTree(rootNode);
deptTree.Nodes.Add(rootNode); /*
while (rootNode.ChildNodes.Count > 0)
{
deptTree.Nodes.Add(rootNode.ChildNodes[0]);
}
*/
deptTree.DataBind(); }
} private void BuildDeptTree(TreeNode parentNode)
{
DepartmentBLL bll = new DepartmentBLL(); DataSet ds = bll.GetList(string.Format("deptParentID = {0} order by deptOrderNum desc", parentNode.Value)); foreach (DataRow dRow in ds.Tables[0].Rows)
{
TreeNode subNode = new TreeNode();
subNode.Value = dRow["deptID"].ToString();
subNode.Text = dRow["deptName"].ToString(); subNode.PopulateOnDemand = true; subNode.SelectAction = TreeNodeSelectAction.Select; subNode.ImageUrl = DeptImage;
subNode.ImageToolTip = dRow["deptName"].ToString(); ; subNode.Target = DeptTarget; if (!string.IsNullOrEmpty(Request.Url.Query))
{
subNode.NavigateUrl = DeptNavigateUrl + Request.Url.Query + string.Format("&DeptID={0}", dRow["deptID"]);
}
else
{
subNode.NavigateUrl = DeptNavigateUrl + string.Format("?DeptID={0}", dRow["deptID"]);
}
parentNode.ChildNodes.Add(subNode);
}
}
protected void deptTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
BuildDeptTree(e.Node);
}
加个委托事件 试试
委托事件
public event SelectedNodeChangedHandler Selected; protected void OnSelected(EventArgs e)
{
if (Selected != null)
{
Selected(this, e);
}
} protected void treeFileView_SelectedNodeChanged(object sender, EventArgs e)
{
SelectedFilePath = treeFileView.SelectedValue;
…
揭示这个错误怎么解决啊,能告诉一下吗?谢谢
CS0246: 找不到类型或命名空间名称“SelectedNodeChangedHandler”(是否缺少 using 指令或程序集引用?)