使用Web方式编辑web.config文件的方法

本文介绍了一个ASP.NET应用程序中的Web.config编辑器实现方案。该编辑器使用ASP.NET控件来展示和修改appSettings节点中的键值对,并通过XML操作实现了读取、保存、添加和删除功能。

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

一、添加控件
    一个ListBox保存appSettings节中的内容。控件的AutoPostBack属性要设置成True。
   <asp:ListBox id="ListBox1" AutoPostBack="True" OnSelectedIndexChanged="SelectedIndexChanged" Height="184px" runat="server"/>
两个TextBox用来填写键名和键值。
<asp:TextBox  id="txtKey" runat="server" />
<asp:TextBox  id="txtValue" runat="server" />
三个Button分别是保存用于保存修改后的键值。添加添加新的键。删除删除不用的键。
<asp:Button  id="cmd_modify" runat="server" Text="保存" OnClick="cmd_modify_Click"/>
<asp:Button  id="cmd_Add" runat="server" Text="添加" OnClick="cmd_Add_Click"/>
<asp:Button  id="cmd_Del" runat="server" Text="删除" OnClick="cmd_Del_Click"/>
二、添加函数
    1. 读取现有配置。因为web.config为xml格式的文档。所以用一个XmlDocument对象把它读到内存。然后把appSettings节中的所有节放到一个XmlNodeList中。最后添加到ListBox。
      void BindData(){
     XmlDocument xd=new XmlDocument();
     xd.Load(Server.MapPath("web.config"))//加载文件
     XmlNodeList xnl=xd.SelectNodes("configuration/appSettings/add")//选择小节。
     ListBox1.Items.Clear();
       foreach(XmlNode xn in xnl)   //添加到ListBox
       {
      ListItem li=new ListItem();
      li.Text=xn.Attributes["key"].Value;
      li.Value=xn.Attributes["value"].Value;
      ListBox1.Items.Add(li);
       }
     }
    2.修改数据。当一个现有的配置项被选定时,两个TextBox会分别显示键名和键值。此时可以修改键值。
      private void cmd_modify_Click(object sender, System.EventArgs e)
      {
     XmlDocument xd=new XmlDocument();
     xd.Load(Server.MapPath("web.config"));
     XmlNodeList xnl=xd.SelectNodes("configuration/appSettings/add");
     foreach(XmlNode xn in xnl) //遍历所有键,修改相应的键。
     {
           if(xn.Attributes["key"].Value==txtKey.Text)
           xn.Attributes["value"].Value=txtValue.Text;
     }
     xd.Save(Server.MapPath("web.config"))//将修改的结果存回文件。
     txtKey.Text="";txtValue.Text="";
     BindData();
      }
    3.添加键。直接在两个TextBox填入键名和键值可添加一个新的键。
      private void cmd_Add_Click(object sender, System.EventArgs e)
      {
     XmlDocument xd=new XmlDocument();
     xd.Load(Server.MapPath("web.config"));
     XmlNode father=xd.SelectSingleNode("configuration/appSettings")//此次选择的是父节点
     XmlNode xn=father.FirstChild.Clone()//创建一个新的字节点。
     xn.Attributes["key"].Value=txtKey.Text;
     xn.Attributes["value"].Value=txtValue.Text;
     father.AppendChild(xn);   //添加子节点
     xd.Save(Server.MapPath("web.config"))//存回文件
     txtKey.Text="";txtValue.Text="";
     BindData();
      }
    4.删除键。
      private void cmd_Del_Click(object sender, System.EventArgs e)
      {
     XmlDocument xd=new XmlDocument();
     xd.Load(Server.MapPath("web.config"));
     XmlNode father=xd.SelectSingleNode("configuration/appSettings")//选择父节点
     XmlNodeList xnl=father.ChildNodes;    //获取子节点的一个集合
     foreach(XmlNode xn in xnl)   //遍历子节点
        {
         if(xn.Attributes["key"].Value==txtKey.Text) //找到选择的节点删除掉
              father.RemoveChild(xn);
        }
     xd.Save(Server.MapPath("web.config"));    //存回文件
     txtKey.Text="";txtValue.Text="";
     BindData();
      }
 
    5. 页面首次加载时在载入现有的设置项,选择已有项时显示键值。
      private void Page_Load(object sender, System.EventArgs e)
      {
         if(!IsPostBack)
           BindData(); //调用函数将数据读入ListBox
      }
      private void SelectedIndexChanged(object sender, System.EventArgs e)
      {
     txtKey.Text=ListBox1.Items[ListBox1.SelectedIndex].Text;
     txtValue.Text=ListBox1.Items[ListBox1.SelectedIndex].Value;
      }

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值