界面截图

数据库表(X_Config)

设计视图: 

数据: 

帮助类

因为此配置信息为全局共享,所以我们用一个帮助类在整个应用程序生命周期只加载一次:

    namespace AppBox{public class XConfigHelper{#region fields & constructor/// <summary>/// 缓存在内存/// </summary>private static XConfigCollection configs = new XConfigCollection();/// <summary>/// 载入所有的配置项/// </summary>static XConfigHelper(){ReloadColl();}/// <summary>/// 重新加载所有的配置项/// </summary>public static void ReloadColl(){configs = new Select().From<XConfig>().ExecuteAsCollection<XConfigCollection>();}#endregion#region methods/// <summary>/// 获取配置信息/// </summary>/// <param name="key"></param>/// <returns></returns>public static string GetValue(string key){foreach (XConfig config in configs){if (config.ConfigKey == key){return config.ConfigValue;}}return String.Empty;}/// <summary>/// 设置值/// </summary>/// <param name="key"></param>/// <param name="value"></param>public static void SetValue(string key, string value){foreach (XConfig config in configs){if (config.ConfigKey == key){config.ConfigValue = value;}}}/// <summary>/// 保存所有更改的配置项/// </summary>public static void SaveAll(){configs.SaveAll();}#endregion#region properties/// <summary>/// 网站标题/// </summary>public static string Title{get{return GetValue("Title");}set{SetValue("Title", value);}}/// <summary>/// 列表每页显示的个数/// </summary>public static int PageSize{get{return Convert.ToInt32(GetValue("PageSize"));}set{SetValue("PageSize", value.ToString());}}/// <summary>/// 菜单样式(手风琴式,树型菜单)/// </summary>public static string MenuType{get{return GetValue("MenuType");}set{SetValue("MenuType", value);}}#endregion}}

ASPX标签

    <ext:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" /><ext:SimpleForm ID="SimpleForm1" runat="server" LabelWidth="100px" BodyPadding="5px"EnableBackgroundColor="true" ShowBorder="false" Title="系统设置"><Items><ext:TextBox ID="tbxTitle" runat="server" Label="网站标题" Required="true" ShowRedStar="true"></ext:TextBox><ext:NumberBox ID="nbxPageSize" runat="server" Label="表格显示项数" Required="true" ShowRedStar="true"></ext:NumberBox><ext:DropDownList ID="ddlMenuType" Label="菜单样式" runat="server" Required="true" ShowRedStar="true"><ext:ListItem Text="手风琴式" Value="accordion" /><ext:ListItem Text="树型菜单" Value="tree" /></ext:DropDownList><ext:Button ID="btnSave" runat="server" ValidateForms="SimpleForm1" Text="保存设置" OnClick="btnSave_OnClick"></ext:Button></Items></ext:SimpleForm>

这里面有一些需要注意的属性:

  • PageManager的属性AutoSizePanelID="SimpleForm1",指定SimpleForm1充满整个页面
  • SimpleForm1的属性ShowBorder="false",去掉蓝色的边框(因为这个SimpleForm是以IFrame的形式嵌入另一个页面的)
  • SimpleForm1的属性EnableBackgroundColor="true",蓝色的背景色
  • tbxTitle的属性Required="true"和ShowRedStar="true",指定必填项和红色的标记
  • btnSave的属性ValidateForms="SimpleForm1",点击此按钮需要验证的表单(可以指定多个表单,以逗号分隔)

后台代码

    public partial class config : PageBase{private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);#region Page_Loadprotected void Page_Load(object sender, EventArgs e){if (!IsPostBack){LoadData();}}private void LoadData(){tbxTitle.Text = XConfigHelper.Title;nbxPageSize.Text = XConfigHelper.PageSize.ToString();ddlMenuType.SelectedValue = XConfigHelper.MenuType.ToLower();}#endregion#region Eventsprotected void btnSave_OnClick(object sender, EventArgs e){XConfigHelper.Title = tbxTitle.Text.Trim();XConfigHelper.PageSize = Convert.ToInt32(nbxPageSize.Text.Trim());XConfigHelper.MenuType = ddlMenuType.SelectedValue.ToLower();XConfigHelper.SaveAll();// 刷新父页面ExtAspNet.PageContext.RegisterStartupScript("parent.window.location.href=parent.window.location.href;");}#endregion}

注意:在保存属性之后,我们需要刷新父页面来应用更改。ExtAspNet.PageContext.RegisterStartupScript用来向页面注册一段脚本,这是一个常用的函数。

下一章,我们会根据这里设置的菜单类型(树形菜单或者手风琴式菜单),来在左侧的区域内动态创建菜单。

下载全部源代码

转载于:https://www.cnblogs.com/sanshi/archive/2009/09/09/1563599.html

ExtAspNet应用技巧(十四) - 系统设置相关推荐

  1. Eclipse用法和技巧十四:自动生成的TODO注释2

    前面介绍了自动生成的TODO注释含义,配置以及如何去除的方法,这里介绍下TODO常见的用途.工作中经常会遇到写代码写到一半,被叫过去开会推动沟通.o(╯□╰)o 一般都有写代码停下来一段时间,再回来就 ...

  2. TurboMail邮件系统实用技巧十四:如何知道对方已经读信

    用户在发送邮件后,最关心的就是该邮件是否已经被收件人阅读.特别对于企业某些涉及到重要信息的邮件,用户可以根据邮件是否已经被阅读的状态,提取到更多的信息以供参考.TurboMail电子邮件系统提供邮件回 ...

  3. Eclipse用法和技巧十五:自动添加未实现方法1

    java代码中经常要实现一些接口,这个也是java代码独有的地方.实现接口,就意味着要实现这个接口中定义的方法,如果一个个去码出方法就需要记得方法名称等等,就算有内容辅助快捷键帮助,也是很麻烦的.这里 ...

  4. 四十四种Javascript技巧大全

    四十四种Javascript技巧大全 1.第一个给变量分配值时不要忘了var关键字. 分配值给未定义的变量将是该变量自动成为全局变量,应该避免全局变量. 2.使用 === 而不是 == 使用 == ( ...

  5. 万能数据库查询分析器使用技巧之(十四)

      万能数据库查询分析器使用技巧之(十四)                马根峰           (广东联合电子服务股份有限公司, 广州 510300) 摘要     本文详细地介绍了" ...

  6. 谷歌浏览器设置请求头_2020年 谷歌SEO优化 十大技巧(四)

    本篇是2020年谷歌SEO优化十大技巧的第4篇文章,在前面的三篇文章中 2020年 谷歌SEO 优化十大技巧(一) --- Jack外贸建站 谷歌SEO 优化教程 主要讲的是页面的标题和关键词的优化研 ...

  7. 第十四期公关大讲堂:公关稿件写作理念、方法与技巧.

    11月28日(周六),陪同伙伴来到北京东湖俱乐部,参加了第十四期公关大讲堂的培训,此次培训内容为"公关稿件写作理念,方法与技巧",由蓝标公关机构首席撰稿顾问吴士深做演讲.     ...

  8. 【SQL开发实战技巧】系列(十四):计算消费后的余额计算银行流水累计和计算各部门工资排名前三位的员工

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  9. 数据库表设计的十四技巧

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证 ...

  10. 只需十四步:从零开始掌握 Python 机器学习(附资源)

    分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...

最新文章

  1. php表单ajax,PHP表单到Ajax类型
  2. Typora链接跳转,页内和页外
  3. 正则表达式测试工具 Regex Tester 的使用方法
  4. entity framework 使用Mysql配置文件
  5. Python学习笔记之基础(二)变量和类型
  6. PowerDesigner 小工具窗
  7. TortoiseGit git push提示fatal: HttpRequestException encountered remote: Invalid username or password.
  8. mysql分组取出每组地一条数据_MySQL 分组后取每组前N条数据
  9. NodeJS开发c++扩展模块
  10. 介绍一个办法查TREX search的log
  11. Linq Group By 注意点
  12. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...
  13. 第六届省赛(软件类)真题----Java大学C组答案及解析
  14. 【火炉炼AI】机器学习040-NLP性别判断分类器
  15. Docker网络基础---Docker跨主机容器访问通信
  16. 最新Thinkphp免签码支付系统源码+安卓监控端/实测可用
  17. JDBC(尚硅谷宋红康老师笔记)
  18. 【供应链架构day5】美团供应链架构的演进之道 - 团购时代
  19. 华为手机的10个使用技巧,你知道吗
  20. c#做一个身份信息查询系统

热门文章

  1. JSP指示元素%@ % 与指示类型
  2. 决策树学习笔记整理【转】
  3. 手机游戏产品经理(七)创建本地化产品的意见
  4. 【BZOJ】【1036】树的统计
  5. Linq to SQL 语法记录....并发写事务
  6. LINQ – 使用DataLoadOptions 提高LINQ to SQL 查询性能
  7. [HTTP] HTTP的缓存机制
  8. javascript设计模式-singleton(单例)模式
  9. JS 异步编程及常考面试题
  10. 两个链表第一个公共节点