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

一、添加控件

    一个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;

      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值