FineUI 官方论坛

标题: TreeView控件为什么每次点击引起PostBack事件? [打印本页]

作者: szjazz    时间: 2013-3-5 10:45
标题: TreeView控件为什么每次点击引起PostBack事件?
我将页面的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事件



作者: aa7769640    时间: 2013-3-7 02:30
楼主太厉害了,谢谢分享!
作者: yygy    时间: 2013-3-11 02:53
留个印记
作者: appletreegd    时间: 2013-3-12 10:24
建议去看下页面的生命周期。




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4