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