FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3098|回复: 3
打印 上一主题 下一主题

TreeView控件为什么每次点击引起PostBack事件?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-5 10:45:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我将页面的TreeView(代码生成的过程名Init_Ctrl),放在Page_Init过程,TreeView的节点也设置了tn.EnablePostBack = true;发现每次点击都会执行一次Init_Ctrl,不知为什么?

单独写了一个类:
  1.        public void Bind_Tvw_ID(DataTable dt, string Pid_Val, FineUI.Tree tvw, FineUI.TreeNode p_Node)
  2.         {
  3.             string filter;
  4.             string fDataType = dt.Columns[fName_Pid].DataType.Name;
  5.             filter = GetFilterId(Pid_Val,fDataType);
  6.             
  7.             DataRow[] drParent =dt.Select(filter);            foreach (DataRow dr in drParent)
  8.             {
  9.                 //判断是否叶结点
  10.                 bool isLeafNode = false;
  11.                 string Id_Val = dr[fName_Id].ToString();
  12.                 if (fDataType == "Int32")
  13.                     //数字型
  14.                     filter =string.Format(fName_Pid + "={0}", Convert.ToInt32(Id_Val));
  15.                 else
  16.                     //字符型
  17.                     filter = string.Format(fName_Pid + "='{0}'", Id_Val);                DataRow[] drChild = dt.Select(filter);
  18.                 if (drChild.Length == 0)
  19.                     isLeafNode = true;                FineUI.TreeNode tn = new FineUI.TreeNode();//建立一个新节点
  20.                 tn.NodeID = dr[fName_Id].ToString();
  21.                 tn.Text = dr[fName_Text].ToString();
  22.                 if (!string.IsNullOrEmpty(fName_IconUrl))
  23.                     if (!(dr[fName_IconUrl] is DBNull))
  24.                         tn.IconUrl = dr[fName_IconUrl].ToString();                tn.SingleClickExpand = true;
  25.                 tn.EnablePostBack = true;
  26.                 if (isLeafNode)
  27.                 {
  28.                     if (!string.IsNullOrEmpty(fName_Url))
  29.                         NodeURLOpenMode(dr, tn);
  30.                 }
  31.                 if (p_Node == null)//如果为根节点
  32.                 {
  33.                     tvw.Nodes.Add(tn);//将该节点加入到TreeView中
  34.                 }
  35.                 else//如果不是根节点
  36.                 {
  37.                     p_Node.Nodes.Add(tn);//该节点加入到上级节点中
  38.                 }
  39.                 Bind_Tvw_ID(dt, tn.NodeID, tvw, tn);
  40.             }
  41.         }
复制代码
页面的相关过程:
  1.         protected void Page_Init(object sender, EventArgs e)
  2.         {
  3.             Alert.Show("ddd");//为了测试添加代码
  4.         }
  5.         protected void Page_Load(object sender, EventArgs e)
  6.         {
  7.             if (!IsPostBack)
  8.             {
  9.                 Init_Ctrl();
  10.             }
  11.         }
复制代码
经调试发现点击节点时,都会激发Page_Init事件


沙发
发表于 2013-3-7 02:30:35 | 只看该作者
楼主太厉害了,谢谢分享!
板凳
发表于 2013-3-11 02:53:42 | 只看该作者
留个印记
地板
发表于 2013-3-12 10:24:53 | 只看该作者
建议去看下页面的生命周期。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-29 06:45 , Processed in 0.043232 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表