|
我将页面的TreeView(代码生成的过程名Init_Ctrl),放在Page_Init过程,TreeView的节点也设置了tn.EnablePostBack = true;发现每次点击都会执行一次Init_Ctrl,不知为什么?
单独写了一个类:
- public void Bind_Tvw_ID(DataTable dt, string Pid_Val, FineUI.Tree tvw, FineUI.TreeNode p_Node)
- {
- string filter;
- string fDataType = dt.Columns[fName_Pid].DataType.Name;
- filter = GetFilterId(Pid_Val,fDataType);
-
- DataRow[] drParent =dt.Select(filter); foreach (DataRow dr in drParent)
- {
- //判断是否叶结点
- bool isLeafNode = false;
- string Id_Val = dr[fName_Id].ToString();
- if (fDataType == "Int32")
- //数字型
- filter =string.Format(fName_Pid + "={0}", Convert.ToInt32(Id_Val));
- else
- //字符型
- filter = string.Format(fName_Pid + "='{0}'", Id_Val); DataRow[] drChild = dt.Select(filter);
- if (drChild.Length == 0)
- isLeafNode = true; FineUI.TreeNode tn = new FineUI.TreeNode();//建立一个新节点
- tn.NodeID = dr[fName_Id].ToString();
- tn.Text = dr[fName_Text].ToString();
- if (!string.IsNullOrEmpty(fName_IconUrl))
- if (!(dr[fName_IconUrl] is DBNull))
- tn.IconUrl = dr[fName_IconUrl].ToString(); tn.SingleClickExpand = true;
- tn.EnablePostBack = true;
- if (isLeafNode)
- {
- if (!string.IsNullOrEmpty(fName_Url))
- NodeURLOpenMode(dr, tn);
- }
- if (p_Node == null)//如果为根节点
- {
- tvw.Nodes.Add(tn);//将该节点加入到TreeView中
- }
- else//如果不是根节点
- {
- p_Node.Nodes.Add(tn);//该节点加入到上级节点中
- }
- Bind_Tvw_ID(dt, tn.NodeID, tvw, tn);
- }
- }
-
复制代码 页面的相关过程:
- protected void Page_Init(object sender, EventArgs e)
- {
- Alert.Show("ddd");//为了测试添加代码
- }
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- Init_Ctrl();
- }
- }
复制代码 经调试发现点击节点时,都会激发Page_Init事件
|
|