webform获取config文件值_webform web.config - CSDN
精华内容
参与话题
  • 在Web.config定义了一个全局设置A,因为程序运行中满足了某个条件,要将A的改变 Web.config中定义: <appSettings> <add key="IsChangeDb" value="false"/> ...

    需求:

    什么时候会用到动态改变Web.config内的值?
    在Web.config定义了一个全局设置值A,因为程序运行中满足了某个条件,要将A的值改变

    Web.config中定义:

      <appSettings>
        <add key="IsChangeDb" value="false"/>
      </appSettings>

     

    获取Web.config中指定配置:

    //获取web.config中 定义在appSetting中定义的配置
    var item = ConfigurationManager.AppSettings["IsChangeDb"];
    
    //根据我自己的需要转换成bool值
    bool isChangeDb = string.IsNullOrEmpty(ConfigurationManager.AppSettings["IsChangeDb"]) ? false : bool.Parse(ConfigurationManager.AppSettings["IsChangeDb"]);

     

    代码中更改Web.config中指定配置:

    
    Configuration config=System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
    config.AppSettings.Settings.Remove("IsChangeDb");
    config.AppSettings.Settings.Add("IsChangeDb", "true");
    config.Save();

     

    参考资料:

    http://stackoverflow.com/questions/719928/how-do-you-modify-the-web-config-appsettings-at-runtime

     

     

    出处:https://blog.csdn.net/qq_32452623/article/details/53580093

    ============================================================================

    asp.net2.0新添加了对web.config直接操作的功能。开发的时候有可能用到在web.config里设置配置文件,其实是可以通过程序来设置这些配置节的。

    asp.net2.0需要添加引用:

    using System.Web.Configuration;

    web.config里的配置节:

    Code
      <appSettings>
        
    <add key="FilePath" value="g:\Test\WebConfigManager\Upload\" />
        
    <add key="p" value="g:\" />
      
    </appSettings>

    (1)读

    string filepath = ConfigurationManager.AppSettings["FilePath"];
     
    (2)添加
            Configuration config = WebConfigurationManager.OpenWebConfiguration("/WebConfigManager");
            AppSettingsSection app 
    = config.AppSettings;
            app.Settings.Add(
    "p""p:\\");
            config.Save(ConfigurationSaveMode.Modified);
     
    (3)修改
              Configuration config = WebConfigurationManager.OpenWebConfiguration("/WebConfigManager");
                AppSettingsSection app 
    = config.AppSettings;
                app.Settings[
    "p"].Value = @"g:\";
                config.Save(ConfigurationSaveMode.Modified);
     
    (4)删除
    Configuration config = WebConfigurationManager.OpenWebConfiguration("/WebConfigManager");
            AppSettingsSection app 
    = config.AppSettings;
            app.Settings.Remove(
    "p");
            config.Save(ConfigurationSaveMode.Modified);
     
     
     
    注意:
    (1)asp.net用户需要有读取、修改、写入的权限。
    (2)WebConfigManager是web.config所在的文件夹名。

     

    出处:https://www.cnblogs.com/xxtkong/archive/2011/10/14/2211793.html

    ==============================================================================

    通过从网上的了解,和学习,我们看到ConfigurationManager.OpenMappedExeConfiguration这个方法可以用于打开指定的配置文件,那么看看我们用它来做一些事情吧,下面看代码:

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web.Configuration;
    
    
    
    namespace PVG.Lib.Configs
    {
        public class WebConfigHelper
        {
            /// <summary>
            /// 是否加密连接字符串
            /// </summary>
            public bool IsEncryptionConnection { get; set; }
    
            private Configuration config = null;
            public Configuration Configuration
            {
                get { return config; }
                set { config = value; }
            }
    
    
    
            public WebConfigHelper()
            {
                config = WebConfigurationManager.OpenWebConfiguration("~");
            }
    
    
            /// <summary>
            /// 读取ConnectionStrings
            /// </summary>
            /// <param name="ConnName"></param>
            /// <returns></returns>
            public string GetConnectionStrings(string ConnName)
            {
                string res = "";
                if (config != null && config.ConnectionStrings.ConnectionStrings[ConnName] != null)
                    res = config.ConnectionStrings.ConnectionStrings[ConnName].ConnectionString;
                return res;
            }
    
            public string SetConnectionStrings(string ConnName, string ConnValue)
            {
                return SetConnectionStrings(ConnName, ConnValue, "");
            }
    
            public string SetConnectionStrings(string ConnName, string ConnValue, string providerName)
            {
                if (config != null)
                {
                    if (config.ConnectionStrings.ConnectionStrings[ConnName] != null)
                        config.ConnectionStrings.ConnectionStrings[ConnName].ConnectionString = ConnValue;
                    else
                        config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings(ConnName, ConnValue, providerName));
                    config.Save(ConfigurationSaveMode.Modified);
                }
                if (IsEncryptionConnection)
                    encryptionConn();//加密配置项
                return GetConnectionStrings(ConnName);
    
            }
    
    
            public string GetAppSettings(string keyName)
            {
                string res = "";
                if (config != null && config.AppSettings.Settings[keyName] != null)
                    res = config.AppSettings.Settings[keyName].Value;
                return res;
            }
    
    
            public string SetAppSettings(string keyName, string keyValue)
            {
                if (config != null)
                {
                    if (config.AppSettings.Settings[keyName] != null)
                        config.AppSettings.Settings[keyName].Value = keyValue;
                    else
                        config.AppSettings.Settings.Add(keyName, keyValue);
                    config.Save(ConfigurationSaveMode.Modified);
                }
                return GetAppSettings(keyName);
    
            }
    
    
            private void encryptionConn()
            {
    
                ConfigurationSection connectionSection = config.GetSection("connectionStrings");
                if (connectionSection != null)
                {
                    connectionSection.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider");
                    config.Save();
                }
            }
    
        }
    }
    View Code

     

    展开全文
  • 有的数据需要写到配置文件...我们可以将这些写入到web.config文件中来。在webForm.aspx.cs页面,或者其他页面去获取这个就可以了 注意是在文件中进行配置。 <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请

    <1>

    有的数据需要写到配置文件中的。我们就尽量写到配置文件中来。比如经常变动的数据 ,或者用户时候的时候只要改改配置文件就可以了用了的值,如:ip地址。端口号,MD5加盐。等等。我们可以将这些值写入到web.config文件中来。在webForm.aspx.cs页面,或者其他页面去获取这个值就可以了

    注意是在<appSettings></appSettings>文件中进行配置。

    <?xml version="1.0" encoding="utf-8"?>
    
    <!--
      有关如何配置 ASP.NET 应用程序的详细消息,请访问
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    
    <configuration>
        <system.web>
            <compilation debug="true" targetFramework="4.0" />
        </system.web>
      <connectionStrings>
        <add name="ConnStr" connectionString="Data Source=Fa-VAIO; Initial Catalog=sales; Integrated Security=True"/>   
      </connectionStrings>
    
    <!--有的数据需要写到配置文件中的。我们就尽量写到配置文件中来。比如经常变动的数据 ,或者用户时候的时候只要改改配置文件就可以了用了的值,如:ip地址。端口号,MD5加盐。等等。我们可以将这些值写入到web.config文件中来。在webForm.aspx.cs页面,或者其他页面去获取这个值就可以了-->
      <appSettings>
        <add key="IP" value="192.168.1.199"/>
        <add key="端口号" value="8080"/>
        <add key="MD5加盐" value="我的盐"/>
      </appSettings>
    </configuration>

    webForm.aspx.cs 文件中来获取

    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Configuration;
    
    namespace 用户激活
    {
        public partial class WebForm4 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string  getIP= ConfigurationManager.AppSettings["IP"];
                string duankouhao = ConfigurationManager.AppSettings["端口号"];
                string mySalt = ConfigurationManager.AppSettings["MD5加盐"];
            }
        }
    }


    static readonly string smtpServer = System.Configuration.ConfigurationManager.AppSettings["SmtpServer"];
            static readonly string userName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
            static readonly string pwd = System.Configuration.ConfigurationManager.AppSettings["Pwd"];
            static readonly int smtpPort = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SmtpPort"]);
            static readonly string authorName = System.Configuration.ConfigurationManager.AppSettings["AuthorName"];
            static readonly string to = System.Configuration.ConfigurationManager.AppSettings["To"];

    ---------------------------------------------------------------------------------------------------------------

    获取自定义节点中的数据

    首先定义一个类:ContactUsSectionHandler.cs

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Xml;
    
    namespace MvcApp.Models
    {
        public class ContactUsSectionHandler : IConfigurationSectionHandler
        {
            private XmlNode _sectionNode; //用来保存配置文件中的节点
            public XmlNode SectionNode
            {
                get { return _sectionNode; }
            }
    
            //当调用ConfigurationManager.GetSection("ContactUsSection")方法时,如果某个类继承IConfigurationSectionHandler接口,那么会触发此接口的Create方法,此时ConfigurationManager.GetSection("ContactUsSection")获取到的Web.config配置文件中的ContactUsSection节点就会传递到 Create方法的第三个参数section上。所以此时section中保存的内容就是Web,config配置文件中的ContactUsSection这个节点的内容
            public virtual object Create(object paarnet, object context, XmlNode section)//实现IConfigurationSectionHandler接口中的Create方法
            {
                this._sectionNode = section; //初始化私有成员_sectionNode
    
                return this; //这个this 其实就是 MvcApp.Models.ContactUsSectionHandler 类的对象。因为我已经在Create方法中将Web.config配置文件中的ContactUsSection这个节点赋值给当前类ContactUsSectionHandler的一个私有属性_sectionNode了。 所以这里这里就可以返回当前类的一个对象啦。
            }
        }
    }

    第二在<configSections>节点中声明一个自定义节点:

      <configSections >
    
        <!--既然要自定义一个ContactUsSection节点,就需要先在<configSections></configSections>这个节点里声明一下自定义节点的名称及类型-->
        <!--这个type表示节点的类型是什么,其实就是表明如果你要获取这个节点的时候,用哪个类来保存这个ContactUsSection节点的内容。 我这里是用MvcApp项目下的Models文件夹下的ContactUsSectionHandler类来保存ContactUsSection这个节点的内容。逗号后面的MvcApp是项目名称-->
        <section name="ContactUsSection" type="MvcApp.Models.ContactUsSectionHandler,MvcApp"/>
      </configSections>

    然后再<configuration>节点下 配置自定义节点

     <ContactUsSection>
        
        <ContactUs>
          <SMTP host="smtp.qq.com" port="587" EnableSsl="true" UseDefaultCredentials="">
            <From password="123456" displayname="">12345678910@qq.com</From>
            <To>98765432101@qq.com</To>
            <Cc>mono@163.com</Cc>
            <Bcc></Bcc>
          </SMTP>
    	</ContactUs>
    	
    </configSections>


    最后,获取自定义节点中的信息

    //调用ConfigurationManager.GetSection("ContactUsSection")方法,获取Web.config配置文件中的ContactUsSection节点的内容,
    //注意:Web.config配置文件中的ContactUsSection节点的内容保存在ContactUsSectionHandler类的私有属性_sectionNode中
    //注意:_sectionNode属性的类型是XmlNode类型的,所以它可以保存ContactUsSection节点的内容
    ContactUsSectionHandler section = System.Configuration.ConfigurationManager.GetSection("ContactUsSection") as ContactUsSectionHandler;

    获取<configuration>下的节点中的数据

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>
    
        <add name="getConn" connectionString="data source=FFB-VAIO;initial catalog=sales;integrated security=true"/>
      </connectionStrings>
    </configuration>
    

    //获取<configuration>下节点的信息
    string connStr = ConfigurationManager.ConnectionStrings["getConn"].ConnectionString;
    SqlConnection m_SqlConnection = new SqlConnection(connStr);

    获取<appSettings>节点中的数据

    <appSettings>    
    	<add key="Name" value="张三" />    
    	<add key="Age" value="26" />  
    </appSettings>
    //获取<appSettings>节点中的内容,用以下方式
    string Name = ConfigurationManager.AppSettings["Name"];



    展开全文
  • 读取配置文件中的连接字符串

    千次阅读 2012-02-17 21:06:14
    首先要建立app.config(winForm应用程序)或者web.config(webForm应用程序)文件一般会自动生成。没有就添加-->新建项-->常规-->应用程序配置文件。App.config是.net的通用配置文件,在ASP.NET下也可以使用。 在配

    如题,数据库连接的字符串一般是写在配置文件中的这样比较灵活.当数据库发生改变时,只需要修改配置文件而不必,修改程序,再重新编译了.
    首先要建立app.config(winForm应用程序)或者web.config(webForm应用程序)文件一般会自动生成。没有就添加-->新建项-->常规-->应用程序配置文件。App.config是.net的通用配置文件,在ASP.NET下也可以使用。
    在配置文件中添加如下内容:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <connectionStrings>
          <add name="Login.UI.Properties.Settings.DB_ZyyyConnectionString"
                connectionString="Data Source=502SERVER;Initial Catalog=DB_Zyyy;Persist Security Info=True;User ID=YangShuang;Password=123456"
                providerName="System.Data.SqlClient" />
          <add name="Localconn" connectionString="Data Source=./SQLEXPRESS;AttachDbFilename=D:/MSCodes/ASP.NET/UserManager/ToTesting/MyTestDB.mdf;Integrated Security=True;User Instance=True"/> 
        </connectionStrings>
    </configuration>
    "<connectionStrings></connectionStrings>"里面就是添加连接字符串信息的,每个add指定一个连接可以有多个连接。
    add中有三个属性:
    name就是给不同连接字符串起的名字,将来用这个名字在程序中区分具体是哪个连接。
    connectionString就是连接字符串了,如果将来数据库发生改变那么只需修改这个属性的值就行了。
    providerName可以不写,还没来的急查是什么意思,根据其指猜测大概是指定提供名字的命名空间或者类库吧。
    在程序中的使用:
    必须先添加一个操作连接字符串的引用System.Configuration;
    然后就可以使用了
    ……
    using System.Configuration;
    ……
    String sqlstr=ConfigurationManager.ConnectionStrings["Localconn"].connetionString;
    ……
    即可获得连接字符串了。
    然后就可以对其进行想要的操作了。

    展开全文
  • 在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理; 2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理; 3)文艺玩法:通过WCF进行处理。 第一种...

    Jquery Ajax调用aspx页面方法

    在asp.net webform开发中,用jQuery ajax传值一般有几种玩法

    1)普通玩法:通过一般处理程序ashx进行处理;

    2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理;

    3)文艺玩法:通过WCF进行处理。

    第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法。

    说明

    在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.config中已经添加了System.Web.Handlers.ScriptModule,它是用于管理asp.net中ajax功能的HTTP模块,这样不管用户是请求.asmx文件还是.aspx文件,都会通过此处理程序来处理请求。

    后台代码:

    复制代码
    using System.Web.Services; //引入命名空间
    
    [WebMethod]
    public static string SayHello()
    {
        return "Hello Ajax!";
    }
    复制代码

    前台页面代码:

    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btn" runat="server" Text="验证用户" />
    </div>
    </form>

    Javascript代码:

    复制代码
    $(function() {     
        $("#btn").click(function() {     
            $.ajax({              
                type: "post", //要用post方式                 
                url: "Demo.aspx/SayHello",//方法所在页面和方法名
                contentType: "application/json; charset=utf-8",     
                dataType: "json",     
                success: function(data) {                    
                    alert(data.d);//返回的数据用data.d获取内容
                },
                error: function(err) {     
                    alert(err);     
                }     
            });
        });     
    });
    复制代码

     

    效果:

    需要注意的地方

    一、data参数写法

    复制代码
    //1)普通写法,JSON键值对,如:单个参数的
    data:"{newsID:"+ id +"}",
    //多个参数的形式:
    data:"{newsID:"+ newsID +",name:"+ name +"}",
    //2)文艺写法:各种引号,双引号,单引号拼接,如
    //单个参数写法:
    data:"{'name':'"+ name +"'}",
    //多个参数写法:
    data: "{'content':'" + $("#content").val() + "','createTime':'" + $("#createTime").val() + "','creator':'" + $("#creator").val() + "'}"
    //容易出错!!!!!
    复制代码

    二、用QueryString传值是后台取不到的问题

    在WebMethod()方法中,是不能通过 HttpContext.Current.QueryString.Get("id")来获取query string,
    因为在WebMethod()默认是用POST方法提交的,而用GetQueryString是不能取到值的。
    替代方法是用JS获取url中的参数,用ajax提交给后台方法是用:
    复制代码
    < script type = "text/javascript" >
        function getArgs(strParame) {
            var args = new Object();
            var query = location.search.substring(1); // Get query string
            var pairs = query.split("&"); // Break at ampersand
            for (var i = 0; i < pairs.length; i++) {
                var pos = pairs[i].indexOf('='); // Look for "name=value"
                if (pos == -1) continue; // If not found, skip
                var argname = pairs[i].substring(0, pos); // Extract the name
                var value = pairs[i].substring(pos + 1); // Extract the value
                value = decodeURIComponent(value); // Decode it, if needed
                args[argname] = value; // Store as a property
            }
            return args[strParame]; // Return the object
    } < /script>
    复制代码

    三、时间问题

    复制代码
    WCF 或 模拟Web服务处理JSON时返回时间格式问题。解决方法如下:
    
    // 杂乱的时间
    var rawDate = "/Date(1347120000000+0800)/";
    // 提取时间字符串
    var strDate = rawDate.substr(6, 13);
    // 把时间字符串转化成int类型
    var intDate = parseInt(strDate);
    // 构造一个Date对象
    var newDate = new Date(intDate);
    // 将时间转化成当地时间格式
    var myDate = newDate.toLocaleDateString();
    // 最终结果
    alert(myDate);
    
    // 合并成一句
    var resultDate = new Date(parseInt("/Date(1347120000000+0800)/".substr(6, 13))).toLocaleDateString();
    复制代码

    四、$.ajax参数详解

    复制代码
    //标准的写法:
    $.ajax({
         type: "post",
         dataType: "json",
         contentType: "application/json", //注意:WebMethod()必须加这项,否则客户端数据不会传到服务端
         data:{如上所述},//注意:data参数可以是string个int类型
         url: "List.aspx/DeleteNews",//模拟web服务,提交到方法
         // 可选的 async:false,阻塞的异步就是同步
         beforeSend:function(){
              // do something.
              // 一般是禁用按钮等防止用户重复提交
              $("#btnClick").attr({disabled:"disabled"});
              // 或者是显示loading图片
         },
         success: function (data) {
              alert("success: " + data.d);//注意这里:必须通过data.d才能获取到服务器返回的值
              // 服务端可以直接返回Model,也可以返回序列化之后的字符串,如果需要反序列化:string json = JSON.parse(data.d);
              // 有时候需要嵌套调用ajax请求,也是可以的
         },
         complete: function(){
              //do something.
              $("#btnClick").removeAttr("disabled");
              // 隐藏loading图片
         },
         error: function (data) {
              alert("error: " + data.d);
         }
    });
    展开全文
  • C# winform或控制台Properties.Settings.Default的使用及存储位置 园 首页博问闪存新随笔联系订阅 随笔-32 文章-0 评论-0  ...Settings里的属性根据范围分为两种 “用户”和“应用程序” ...
  • 我们想法是以不同的服务器端方式输出,然后在页面使用jQuery的ajax实现调用服务器端几个解决方案: 使用一般的webform,在页面用jQuery ajax调用,再从取得的html数据中取得内的内容,写入DOM优点:不用改变现有的...
  • 在做上传附件功能时,发现超过4kb的文件就上传失败,调试无反映,最后发现是IIS在作怪,当我们的附件大于4kb的,IIS就主动拦截了我们的请求,如图: IIS默认最大的URL长度为:4kb;当我们上传附件时,URL请求被...
  • C# 读取保存App.config配置文件

    万次阅读 2015-10-09 16:26:19
    public class ConfigureAppConfig { //静态构造,不能实例化 static .../// 获取AppSettings配置节中的Key /// /// Key's name /// Key's value public static string GetAppSettingsKeyValue(strin
  • 保持Session的有效期

    千次阅读 2007-05-16 17:57:00
    Session会在最后一次访问时开始计算达到Web.config中定义的时间后消失。 那意味着即便浏览器关闭后服务器也会忽略销毁本地的用户Session存储。在本文你可以看到如何根据用户是否使用来保持Session对象
  • WebForm 使用log4net

    千次阅读 2018-03-21 22:07:22
    1》 新建一个webForm应用程序, 2》在项目中引用log4net.dll 3》在项目中添加一个名字为log4net.config的配置文件 下面我们开始配置log4net.config&lt;configuration&gt; &lt;configSections&gt;...
  • 使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,...
  • c#读取xml文件配置文件Winform及WebForm-Demo详解
  • .ascx用户控件

    千次阅读 2017-08-25 16:50:28
    .ascx用户控件参考系列教程User controls in asp.net - Part 104用户控件包含了html、代码和其他Web或者用户控件的组合,并在Web服务器上以自己的文件格式保存,其扩展名是*....用户控件与webform的异同: 1.设计和实
  • WinForm教程(一)App.config等配置文件

    千次阅读 2018-09-12 16:44:52
    平时也会在App.config中写连接字串,但没有仔细深究过,当然除了写数据库字串,肯定还能写别的,我们无论在控制台程序还是窗体程序,都会遇见他,乘代码敲累之际,写篇博客平缓下。 应用程序配置文件是标准的 XML ...
  • (转)无aspx文件部署

    千次阅读 2004-08-17 21:18:00
    通过上篇post大家已经知道了如何获取aspx生成的dll文件,我们只要再作两步工作,就可以实现无aspx部署了:1、把生成的全部dll文件拷贝到项目的bin目录下;2、在web.config中加入类似下面的配置节声
  • asp.net 一般处理程序

    万次阅读 多人点赞 2013-09-23 22:09:55
    asp.net:一般处理程序.ashx效率比较高效,WebForm(aspx)比较消耗资源,MVC(效率刚好介于两者之间) asp.net里常用的文件 .ashx 一般处理程序HttpHandler,asp.net核心程序,但一般使用.aspx(常用于不需要返回大量...
  • C# winform Settings 工作原理和方法说明

    千次阅读 2011-11-18 12:51:16
    范围为“应用程序”的属性,读取都是从APP.CONFIG获取,设置也可以通过手工修改App.config改变,但是在程序中无法对其进行赋值,只能读取。 而范围为“用户”的属性 Settings 在第一次运行时会读取App.config里的...
  • 【原创】ASP.NET 安全认证(三)——用Form 表单认证实现单点登录(Single Sign On)作者:寒羽枫(cityhunter172)第三部分 实现单点登录(Single Sign On) “等了好久终于等到今天,写了好久终于就快完结,但是...
  • 对于这个问题,我花了整整一天的时间研究水晶报表的帮助文件,终于得到解决方案。我不是一个保守的人,我相信有很多的网友正和我一样在花费精力在研究这个问题,我不愿意大家再和我一样白白的花费精力。下面是我实现...
  • 取消水晶报表的数据库登陆框

    千次阅读 2008-05-07 10:07:00
    对于这个问题,斑竹我花了整整一天的时间研究水晶报表的帮助文件,终于得到解决方案。我不是一个保守的人,我相信有很多的网友正和我一样在花费精力在研究这个问题,我不愿意大家再和我一样白白的花费精力。下面是我...
1 2 3 4 5 ... 20
收藏数 3,014
精华内容 1,205
关键字:

webform获取config文件值