Asp.net TreeView异步加载数据,并结合checkbox实现多选删除

来源:互联网 发布:富士镜头推荐 知乎 编辑:程序博客网 时间:2024/05/22 17:48

JS:

<script  runat="server">        void PopulateNode(Object sender, TreeNodeEventArgs e)        {            PopulateCategories(e.Node);//此处可以加一些判断条件去执行不同的方法        }        void PopulateCategories(TreeNode node)        {            DataSet ResultSet = new SysAreaMg().GetListFromView(" a.PCode='" + node.Value + "'");            if (ResultSet.Tables.Count > 0)            {                foreach (DataRow row in ResultSet.Tables[0].Rows)                {                    TreeNode newNode = new TreeNode();                    newNode.Text = "<font style='font-size: 12px; font-family:新宋体' >" + row["AreaName"].ToString().Trim() + "</font>";                    newNode.Text += "<font style='font-size: 12px; font-family:新宋体'>[" + row["AreaCode"].ToString() + "]</font>";                    newNode.Text += "&nbsp;&nbsp;<a class='FootLink' href=\"javascript:ymPrompt.win('AreaAdd.aspx?AreaCode=" + Common.UrlEncode(row["AreaCode"].ToString().Trim()) + "', 400, 220, '增加区域', null, null, null, { id: 'form1' }) \">增加区域</a>";                    newNode.Text += "&nbsp;&nbsp;<a class='FootLink' href=\"javascript:ymPrompt.win('AreaEdit.aspx?AreaCode=" + Common.UrlEncode(row["AreaCode"].ToString().Trim()) + "', 400, 220, '编辑区域', null, null, null, { id: 'form1' }) \">编辑区域</a>";                                        newNode.Value = row["AreaCode"].ToString();                    newNode.ShowCheckBox = true;//所有节点都显示多选框                    if (row["childFlag"] != null && row["childFlag"].ToString() != "")//如果为叶子节点则 不需要异步加载数据事件                    {                        newNode.PopulateOnDemand = true;                        newNode.SelectAction = TreeNodeSelectAction.Expand;                    }                    node.ChildNodes.Add(newNode);                }            }        }    </script>

.aspx

<asp:TreeView ID="TreeView_Area" ShowLines="True" runat="server" ExpandDepth="10"                        LineImagesFolder="../Img/Tree" Style="margin-top: 0px; margin-left: 20px" Width="20px"                        ShowCheckBoxes="Leaf" OnTreeNodePopulate="PopulateNode"                         EnableClientScript="true">                    </asp:TreeView>

.aspx.cs

//treeview基本设置TreeView_Area.Nodes.Clear();        TreeNode node_0 = new TreeNode();        node_0.ImageUrl = "../Img/Small/s02.jpg";        node_0.Text = " 行政区划" + "<a herf='#'></a>";        node_0.Value = "32";        node_0.Text += "  <a class='FootLink' href=\"javascript:ymPrompt.win('AreaAdd.aspx?AreaCode=" + Common.UrlEncode("0") + "', 400, 220, '增加区域', null, null, null, { id: 'form1' }) \">增加区域</a>";        node_0.SelectAction = TreeNodeSelectAction.Expand;//点击节点text时展开节点        node_0.PopulateOnDemand = true;//动态填充设为true        node_0.Expanded = false;//节点默认不展开        this.TreeView_Area.Nodes.Add(node_0);//获取选择项public string GetTreeCheck(TreeNode tn)    {        foreach (TreeNode treenode in tn.ChildNodes)        {            if (treenode.Checked)            {                string trValue = treenode.Value;                string trText = treenode.Text;                FunctionString += trValue + ",";            }            GetTreeCheck(treenode);        }        return FunctionString;    }    protected void btnDelete_Click(object sender, EventArgs e)    {        string AreaCodeAll = GetTreeCheck(TreeView_Area.Nodes[0]);        AreaCodeAll = AreaCodeAll.TrimEnd(',');        string[] AreaArrayList = AreaCodeAll.Split(',');        bool bResult = false;        if (AreaCodeAll == "")        {            Common.MessageBox(this.Page, "请选择要删除的区域选项!");            return;        }        else        {            for (int i = 0; i < AreaArrayList.Length; i++)            {                if (AreaArrayList[i].ToString().Length > 0)                {                    bResult = areaMg.Delete(AreaArrayList[i].ToString().Trim());//逐条删除,可优化为集合删除                }            }        }        ShowTree();        if (bResult)        {            Common.MessageBox(this.Page, "操作成功!");        }        else        {            Common.MessageBox(this.Page, "操作失败,请重试!");        }         return;    }