Ext.Net 1.x_Ext.Net.Dropdownlist结合TreePanel

来源:互联网 发布:php字符串反转 编辑:程序博客网 时间:2024/05/22 14:21

今天在学习布局的过程中,有个申请部门。就想到Dropdownlist+TreePanel,看DEMO有这样的,但是后台如何搞呢?

请教DB后终于搞定了。

前台:

                                   <ext:DropDownField ID="ddldepartment" runat="server" Editable="false" FieldLabel="申请单位" AnchorHorizontal="100%" >                                     <Component>                                        <ext:TreePanel ID="TreePanel1" runat="server"  Icon="ApplicationHome" Height="300"                                            Shadow="None" UseArrows="true" AutoScroll="true" Animate="true" EnableDD="true"                                            ContainerScroll="true" RootVisible="false">                                            <Buttons>                                                <ext:Button ID="btnclose" runat="server" Text="关闭">                                                    <Listeners>                                                        <Click Handler="#{ddldepartment}.collapse();" />                                                    </Listeners>                                                </ext:Button>                                            </Buttons>                                            <Root>                                            </Root>                                            <Listeners>                                                <CheckChange Handler="this.dropDownField.setValue(getTasks(this), false);" />                                            </Listeners>                                        </ext:TreePanel>                                     </Component>                                        <Listeners>                                            <Expand Handler="this.component.getRootNode().expand(true);" Single="true" Delay="10" />                                        </Listeners>                                    </ext:DropDownField>


后台:

protected void Page_Load(object sender, EventArgs e)    {        if (!X.IsAjaxRequest)        {            string strsql = "select * from Framework";            DABaseAccess db = new DABaseAccess("OA");            DataTable dt = new DataTable();            dt = db.Query(strsql.ToString());            if (dt.Rows.Count > 0)            {                this.BuildTree(this.TreePanel1.Root, dt);            }            else            {                JScript.Alert("没有取得数据", this.Page);            }        }    }    /// <summary>    /// TreePanel    /// </summary>    /// <param name="allData"></param>    /// <returns></returns>    public TreeNode BindTreePanel(DataTable allData)    {        TreeNode topNode = new TreeNode();        topNode.NodeID = "0";        topNode.Text = "Root";        if (allData != null && allData.Rows.Count > 0)        {            DataRow[] items = allData.Select("FParentID=-1");            if (items != null && items.Length > 0)            {                DataSet ds = new DataSet();                ds.Merge(items);                DataTable SourseTable = ds.Tables[0];                for (int i = 0; i < SourseTable.Rows.Count; i++)                {                    TreeNode Tvn = new TreeNode();                    Tvn.Expandable = ThreeStateBool.True;                    Tvn.NodeID = SourseTable.Rows[i]["FID"].ToString();                    Tvn.Text = SourseTable.Rows[i]["FNAME"].ToString();                    DataRow[] isChildNode = allData.Select("fparentid=" + SourseTable.Rows[i]["FID"].ToString());                    if (isChildNode.Length <= 0)                    {                        Tvn.Leaf = true;                        Tvn.Checked = Ext.Net.ThreeStateBool.False;                    }                    if (isChildNode.Length > 0) Tvn.Icon = Icon.FolderGo;                    else Tvn.Icon = Icon.Table;                    BindSubTreePanel(Tvn, allData, SourseTable.Rows[i]["FID"].ToString());                    topNode.Nodes.Add(Tvn);                }            }        }        return topNode;    }    private void BindSubTreePanel(TreeNode TrNode, DataTable allData, string parentID)    {        DataRow[] items = allData.Select("FParentID=" + parentID);        if (items != null && items.Length > 0)        {            DataSet ds = new DataSet();            ds.Merge(items);            DataTable dt = ds.Tables[0];            for (int i = 0; i < dt.Rows.Count; i++)            {                TreeNode Tvn = new TreeNode();                Tvn.Icon = Icon.Note;                Tvn.NodeID = dt.Rows[i]["FID"].ToString();                Tvn.Text = dt.Rows[i]["FNAME"].ToString();                DataRow[] isChildNode = allData.Select("fparentid=" + dt.Rows[i]["FID"].ToString());                if (isChildNode.Length <= 0)                {                    Tvn.Leaf = true;                    Tvn.Checked = Ext.Net.ThreeStateBool.False;                }                if (isChildNode.Length > 0) Tvn.Icon = Icon.FolderGo;                else Tvn.Icon = Icon.Table;                BindSubTreePanel(Tvn, allData, dt.Rows[i]["FID"].ToString());                TrNode.Nodes.Add(Tvn);            }        }    }    private Ext.Net.TreeNodeCollection BuildTree(Ext.Net.TreeNodeCollection root, DataTable dt)    {        root.Add(this.BindTreePanel(dt));        return root;    }


原创粉丝点击