我对 Telerik 的RadTreeList控制有疑问。当我将数据加载到 中时RadTreeList,只有单击展开按钮才能访问其子项。不展开,ChildItems列表为空。有没有办法在不扩展的情况下获得特定父母的孩子?
1 回答
0
子项仅在父项展开时出现在控件中。但是,可以在代码中扩展项目以访问子项目。(如果您不希望它显示为展开状态,则可以将父级恢复到其折叠状态。)
由于在控件的生命周期中发生了一些事情,因此需要一点小心:
私人布尔 isGetChildItems = false;
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
//if(您需要访问子项的条件)
{
isGetChildItems = true;
//你的逻辑来扩展你需要的任何节点
RadTreeList1.Items[0].Expanded = true;
}
}
}
protected void RadTreeList1_DataBound(object sender, EventArgs e)
{
//在生命周期的这一点上,我们可以访问子项
if (isGetChildItems)
{
//对子项做任何我们需要做的事情
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "", string.Format("alert('Item 0 has {0} child items')", RadTreeList1.Items[0].ChildItems.Count), true );
}
}
protected void RadTreeList1_PreRender(对象发送者,EventArgs e)
{
if (isGetChildItems)
{
//恢复节点状态,清除我们的标志并重新绑定
isGetChildItems = 假;
RadTreeList1.Items[0].Expanded = false;
RadTreeList1.DataBind();
}
}
于 2014-05-25T19:07:47.310 回答