国产探花免费观看_亚洲丰满少妇自慰呻吟_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&
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克山县| 武宣县| 罗江县| 墨竹工卡县| 信宜市| 佛学| 大连市| 宿州市| 三明市| 阿拉善左旗| 修武县| 萍乡市| 浠水县| 启东市| 镶黄旗| 通辽市| 静乐县| 馆陶县| 绥德县| 松溪县| 理塘县| 固阳县| 新郑市| 桂平市| 广灵县| 津市市| 聂拉木县| 吴堡县| 梧州市| 长白| 元氏县| 太仆寺旗| 特克斯县| 城口县| 施秉县| 黄梅县| 绥阳县| 太和县| 金湖县| 天气| 东丽区|