国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

通過實例學習Fireasy開發(補充)

2019-11-17 02:03:34
字體:
來源:轉載
供稿:網友

通過實例學習Fireasy開發(補充)

本文目錄

通過實例學習Fireasy開發(上篇)

通過實例學習Fireasy開發(中篇)

通過實例學習Fireasy開發(下篇)

通過實例學習Fireasy開發(補充/示例代碼下載)

前面的功能已經開發完成了,但是這里專門用一章來進行補充。

一、EasyUI驗證

不知道你有沒有發現,我們雖然在EmployeeMetada里加了驗證特性RequiredAttribute、StringLengthAttribute,但是頁面并沒有在data-options里生成validType。

在global.asax的application_Start方法里,加入以下的代碼:

        PRotected void Application_Start(object sender, EventArgs e)        {            //資源打包配置            BundleHelper.Config();            //默認是使用MEF導出服務的,改成使用aspx對應的類文件作為服務            HttpConfiguration.Default.ServiceFactory = new AspPageServiceFactory();            //配置http服務的路由,依子目錄的級數而定            HttpConfiguration.MapHttpRoute("{service}.ajx/{action}");            HttpConfiguration.MapHttpRoute("{p1}/{service}.ajx/{action}");            HttpConfiguration.MapHttpRoute("{p1}/{p2}/{service}.ajx/{action}");            HttpConfiguration.MapHttpRoute("{p1}/{p2}/{p3}/{service}.ajx/{action}");            SettingsBindManager.RegisterBinder("validatebox", new ValidateBoxSettingBinder());            SettingsBindManager.RegisterBinder("numberbox", new NumberBoxSettingBinder());        }

為了達到效果,我們修改一下WebApplication1.Data項目下的EmployeeMetadata類(在Employee_Ex.cs文件內),為Mobile加上手機驗證,為Name、Post、Sex和Birthday加上必填驗證。

    public class EmployeeMetadata    {                /// <summary>        /// 屬性 Id 的驗證特性。        /// </summary>                [Required]        [StringLength(36)]        public object Id { get; set; }        /// <summary>        /// 屬性 DeptId 的驗證特性。        /// </summary>                [Required]        [StringLength(36)]        public object DeptId { get; set; }        /// <summary>        /// 屬性 No 的驗證特性。        /// </summary>                [StringLength(20)]        public object No { get; set; }        /// <summary>        /// 屬性 Sex 的驗證特性。        /// </summary>                [Required]        public object Sex { get; set; }        /// <summary>        /// 屬性 Name 的驗證特性。        /// </summary>                [Required]        [StringLength(20)]        public object Name { get; set; }        /// <summary>        /// 屬性 Birthday 的驗證特性。        /// </summary>                [Required]        public object Birthday { get; set; }        /// <summary>        /// 屬性 Post 的驗證特性。        /// </summary>                [Required]        public object Post { get; set; }        /// <summary>        /// 屬性 Mobile 的驗證特性。        /// </summary>                [Fireasy.Data.Validation.Mobile]        [StringLength(20)]        public object Mobile { get; set; }        /// <summary>        /// 屬性 Address 的驗證特性。        /// </summary>                [StringLength(100)]        public object Address { get; set; }        /// <summary>        /// 屬性 Description 的驗證特性。        /// </summary>                [StringLength(500)]        public object Description { get; set; }        /// <summary>        /// 屬性 State 的驗證特性。        /// </summary>                public object State { get; set; }        /// <summary>        /// 屬性 DelFlag 的驗證特性。        /// </summary>                public object DelFlag { get; set; }        /// <summary>        /// 屬性 Photo 的驗證特性。        /// </summary>                [StringLength(200)]        public object Photo { get; set; }    }

好了,我們現在來看看EmployeeEdit.aspx有表單有沒有加上數據驗證:

二、數據列表的排序

datagrid的columns中,我們默認生成了sortable屬性,但是后臺代碼中并沒有使用排序。其實代碼是生成了的,只需將注釋行Order(sorting)取消就要以了。

        /// <summary>        /// 根據查詢條件獲取員工。        /// </summary>        /// <param name="deptNo">部門編碼。</param>        /// <param name="startTime">開始日期。</param>        /// <param name="endTime">結束時間。</param>        /// <param name="post">崗位類別。</param>        /// <param name="keyWord">關鍵字</param>        /// <returns></returns>        [ExceptionBehavior(true)]        public object GetEmployees(string deptNo, DateTime? startTime, DateTime? endTime, PostKinds? post, string keyword)        {            var pager = EasyUIHelper.GetDataPager();            var sorting = EasyUIHelper.GetSorting();            using (var context = new DbContext())            {                var list = context.Employees                    .Segment(pager)                    .OrderBy(sorting)                    .AssertWhere(!string.IsNullOrEmpty(deptNo), s => s.Dept.No.StartsWith(deptNo))                    .AssertWhere(startTime != null, s => s.Birthday >= startTime.Value.StartOfDay())                    .AssertWhere(endTime != null, s => s.Birthday <= endTime.Value.EndOfDay())                    .AssertWhere(post != null, s => s.Post == post)                    .AssertWhere(!string.IsNullOrEmpty(keyword), s => s.Name.Contains(keyword))                    .Select(s => new                        {                            s.Id,                            s.No,                            s.Name,                            Sex = ((Sex)s.Sex).GetDescription(),                            Post = s.Post.GetDescription(),                            s.Birthday,                            s.Mobile,                            s.Address,                            s.Description                        })                    .ToList();                return EasyUIHelper.Transfer(pager, list);            }        }

但有一種情況,即沒有單擊列頭的情況下,默認使用某一屬性排序,比如按編碼降序排列,這時,Order方法可以這樣寫:

        /// <summary>        /// 根據查詢條件獲取員工。        /// </summary>        /// <param name="deptNo">部門編碼。</param>        /// <param name="startTime">開始日期。</param>        /// <param name="endTime">結束時間。</param>        /// <param name="post">崗位類別。</param>        /// <param name="keyword">關鍵字</param>        /// <returns></returns>        [ExceptionBehavior(true)]        public object GetEmployees(string deptNo, DateTime? startTime, DateTime? endTime, PostKinds? post, string keyword)        {            var pager = EasyUIHelper.GetDataPager();            var sorting = EasyUIHelper.GetSorting();            using (var context = new DbContext())            {                var list = context.Employees                    .Segment(pager)                    .OrderBy(sorting, u => u.OrderByDescending(t => t.No))                    .AssertWhere(!string.IsNullOrEmpty(deptNo), s => s.Dept.No.StartsWith(deptNo))                    .AssertWhere(startTime != null, s => s.Birthday >= startTime.Value.StartOfDay())                    .AssertWhere(endTime != null, s => s.Birthday <= endTime.Value.EndOfDay())                    .AssertWhere(post != null, s => s.Post == post)                    .AssertWhere(!string.IsNullOrEmpty(keyword), s => s.Name.Contains(keyword))                    .Select(s => new                        {                            s.Id,                            s.No,                            s.Name,                            Sex = ((Sex)s.Sex).GetDescription(),                            Post = s.Post.GetDescription(),                            s.Birthday,                            s.Mobile,                            s.Address,                            s.Description                        })                    .ToList();                return EasyUIHelper.Transfer(pager, list);            }        }

三、圖片上傳

員工表設計了一個照片的字段,但是之前我們并沒有用到它,現在我們就把照片上傳給加上。

首先,要引入上傳所需的js,只需要在BundleHelper.Render 后面再加上 upload 就可以了。

    <%= BundleHelper.Render("base", "upload") %>

 接下來修改一下表單的table,加一個圖片和上傳圖片的鏈接:

        <table class="form-body">            <tr>                <td class="addon">部門</td>                <td&
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜平县| 玉林市| 西充县| 涟源市| 萨迦县| 山阳县| 鹤壁市| 新乐市| 商城县| 甘肃省| 苏尼特左旗| 侯马市| 武强县| 玛曲县| 和平县| 望江县| 革吉县| 都昌县| 寿光市| 齐齐哈尔市| 夏津县| 民乐县| 金山区| 明光市| 武平县| 安阳市| 新干县| 清水河县| 剑阁县| 西畴县| 宜章县| 双流县| 东海县| 晋宁县| 明星| 濮阳县| 壤塘县| 韶关市| 昭通市| 通山县| 惠水县|