TreeView增删改

本文展示了如何使用ASP.NET的TreeView控件实现类型数据的增删改功能。通过后台C#代码,当用户点击按钮时,可以进行添加、修改和删除操作,并与数据库交互更新数据。页面加载时初始化TreeView,根据数据库中的数据动态生成节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台代码和效果图:

<body>
    <form id="form1" runat="server">
        <table border="1" cellpadding="0" cellspacing="0" style="text-align: center;" width="100%"
            bgcolor="#d4ddee">
            <tr>
            <td>
            <table style=" width:100%;">
            <tr>
            <td style=" width:30%; height: 500px;" align="left" valign="top">
                <asp:TreeView ID="tv_type" runat="server" ShowLines="True"
                    onselectednodechanged="tv_type_SelectedNodeChanged">
                    <SelectedNodeStyle BackColor="#69A1DA" />
                </asp:TreeView></td>
                <td style=" width:70%; height: 500px;" align="left" valign="top">
                    <table width="100%" style="line-height: 35px">
                <tr><td colspan="2" align="right">
                    <asp:Label ID="lblvalue" runat="server" Visible="False"></asp:Label>
                    <asp:Label ID="lbltype" runat="server" Visible="False"></asp:Label>
                <asp:Button ID="BtnAdd" runat="server" Text="添 加"
                        OnClick="BtnAdd_Click" CssClass="sub_bg" />
                    &nbsp;
                <asp:Button ID="Btnupdate" runat="server" Text="修 改"
                        OnClick="Btnupdate_Click" CssClass="sub_bg" Enabled="False" />
                    &nbsp;
                <asp:Button ID="Btnsave" runat="server" Text="保 存"
                        OnClick="Btnsave_Click" CssClass="sub_bg" Enabled="False" />
                    &nbsp;
                <asp:Button ID="Btndelete" runat="server" Text="删 除"
                        OnClick="Btndelete_Click" CssClass="sub_bg" Enabled="False" />
                    &nbsp;
                <asp:Button ID="Btncancel" runat="server" Text="撤 销"
                        OnClick="Btncancel_Click" CssClass="sub_bg" Enabled="False" />
                    &nbsp;
                </td></tr>

                <tr><td align="right">类型名称:</td>
                <td align="left">
                    <asp:TextBox ID="txtcodename" runat="server" Width="204px"></asp:TextBox>
                    </td>
                </tr>
                </table></td></tr>
            </table>
            </td>
            </tr>
        </table>
    </form>
</body>

 

后台代码:

HHE_SubjectTypeBLL tbll = new HHE_SubjectTypeBLL();
        HHE_ListenTaskMainBLL bll = new HHE_ListenTaskMainBLL();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                txtcodename.Enabled = false;
                InitTree(tv_type.Nodes, 0);
            }
        }


        //绑定类型
        private void InitTree(TreeNodeCollection Nds, int parentid)
        {
           
            TreeNode tmpNd = null;
            DataTable dt = bll.Select("select id,codename from HHE_SubjectType where fid=" + parentid);
            foreach (DataRow drv in dt.Rows)
            {
                tmpNd = new TreeNode();
                tmpNd.Text = drv["codename"].ToString(); ;//节点名称
                tmpNd.Value = drv["id"].ToString();
                if (parentid == 0)
                    tmpNd.Expanded = true;
                else
                    tmpNd.Expanded = false;
                Nds.Add(tmpNd);
                InitTree(Nds[Nds.Count - 1].ChildNodes, (int)drv["id"]);
            }
        }


        //添加
        protected void BtnAdd_Click(object sender, EventArgs e)
        {
            Btnupdate.Enabled = false;
            Btndelete.Enabled = false;
            txtcodename.Enabled = true;
            Btncancel.Enabled = true;
            BtnAdd.Enabled = false;
            txtcodename.Text = "";
            Btnsave.Enabled = true;
            lbltype.Text = "add";
            //Response.Write("<script>alert('" + tv_type.SelectedNode.Value + "')</script>");
        }


        //修改
        protected void Btnupdate_Click(object sender, EventArgs e)
        {
            if (lblvalue.Text == "")
            {
                Response.Write("<script>alert('请选择一个类型进行修改!')</script>");
                return;
            }
            lbltype.Text = "update";
            txtcodename.Enabled = true;
            txtcodename.Text = tv_type.SelectedNode.Text;
            BtnAdd.Enabled = false;
            Btndelete.Enabled = false;
            Btnsave.Enabled = true;
            Btnupdate.Enabled = false;
            Btncancel.Enabled = true;
        }


        //选中类型
        protected void tv_type_SelectedNodeChanged(object sender, EventArgs e)
        {
            txtcodename.Enabled = false;
            BtnAdd.Enabled = true;
            Btnupdate.Enabled = true;
            Btndelete.Enabled = true;
            Btncancel.Enabled = true;
            lblvalue.Text = tv_type.SelectedNode.Value;
        }

        //保存
        protected void Btnsave_Click(object sender, EventArgs e)
        {
            if (lbltype.Text == "")
            {
                Response.Write("<script>alert('操作不正确,请确定添加还是修改!')</script>");
                return;
            }
            if(txtcodename.Text.Trim()=="")
            {
                Response.Write("<script>alert('请填写类型名称!')</script>");
                txtcodename.Focus();
                return;
            }
            //添加
            if (lbltype.Text == "add")
            {
                string fid = "";
                if (lblvalue.Text == "")
                {
                    fid = "0";
                }
                else
                {
                    fid = lblvalue.Text;
                }
                if (tbll.AddSubjectType(fid, txtcodename.Text))
                {
                    Response.Write("<script>alert('添加成功!')</script>");
                    tv_type.Nodes.Clear();
                    InitTree(tv_type.Nodes, 0);
                    Btncancel_Click(sender, e);
                }
                else
                {
                    Response.Write("<script>alert('添加失败!')</script>");
                }
            }


            //修改
            if (lbltype.Text == "update")
            {
                if (tbll.UpdateSubjectType(lblvalue.Text, txtcodename.Text))
                {
                    Response.Write("<script>alert('数据修改成功!')</script>");
                    tv_type.Nodes.Clear();
                    InitTree(tv_type.Nodes, 0);
                    Btncancel_Click(sender, e);
                }
                else
                {
                    Response.Write("<script>alert('数据修改失败!')</script>");
                }
            }
        }


        //删除
        protected void Btndelete_Click(object sender, EventArgs e)
        {
            if (lblvalue.Text == "")
            {
                Response.Write("<script>alert('请选择一个类型进行删除!')</script>");
                return;
            }
            if (tbll.DeleteSubjectType(lblvalue.Text))
            {
                Response.Write("<script>alert('数据删除成功!')</script>");
                tv_type.Nodes.Clear();
                InitTree(tv_type.Nodes, 0);
                Btncancel_Click(sender, e);
            }
            else
            {
                Response.Write("<script>alert('数据删除失败!')</script>");
            }
        }


        //撤销
        protected void Btncancel_Click(object sender, EventArgs e)
        {
            lbltype.Text = "";
            lblvalue.Text = "";
            tv_type.Nodes.Clear();
            InitTree(tv_type.Nodes, 0);
            txtcodename.Enabled = false;
            BtnAdd.Enabled = true;
            Btnupdate.Enabled = false;
            Btndelete.Enabled = false;
            Btnsave.Enabled = false;
            Btncancel.Enabled = false;
            txtcodename.Text = "";
        }

数据库表字段:


 

相关方法:

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="sql">SQL命令</param>
        /// <returns>DataTable</returns>
        public DataTable Select(string sql)
        {
            return DBService.ExecuteGetDataTable(CommandType.Text, sql, null);
        }

      添加      

       public bool AddSubjectType(string fid,string codename)
        {
            string sql = "insert into HHE_SubjectType values(@fid,@codename)";
            SqlParameter[] param ={
                                 new SqlParameter("@fid",fid),
                                 new SqlParameter("@codename",codename)                  
                                 };
            if (DBService.ExecuteNonQuery(CommandType.Text, sql, param) > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

     修改
        public bool UpdateSubjectType(string id,string codename)
        {
            string sql = "update HHE_SubjectType set codename=@codename where id=@id";
            SqlParameter[] param ={
                                 new SqlParameter("@codename",codename),
                                 new SqlParameter("@id",id)                  
                                 };
            if (DBService.ExecuteNonQuery(CommandType.Text, sql, param) > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

   删除
        public bool DeleteSubjectType(string id)
        {
            string sql = "delete from HHE_SubjectType  where id=@id";
            SqlParameter param = new SqlParameter("@id", id);
            if (DBService.ExecuteNonQuery(CommandType.Text, sql, param) > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值