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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

通過實(shí)例學(xué)習(xí)Fireasy開發(fā)(下篇)

2019-11-17 02:03:30
字體:
供稿:網(wǎng)友

通過實(shí)例學(xué)習(xí)Fireasy開發(fā)(下篇)

本文目錄

通過實(shí)例學(xué)習(xí)Fireasy開發(fā)(上篇)

通過實(shí)例學(xué)習(xí)Fireasy開發(fā)(中篇)

通過實(shí)例學(xué)習(xí)Fireasy開發(fā)(下篇)

通過實(shí)例學(xué)習(xí)Fireasy開發(fā)(補(bǔ)充/示例代碼下載)

一、員工列表頁面

EmployeeList.aspx頁面的需求是這樣的,左邊是部門樹,右邊是員工列表,點(diǎn)擊部門節(jié)點(diǎn)后右邊顯示該部門下面的員工,同時(shí)提供崗位、生日期間查詢。

對table:#dg處進(jìn)行改造,加下一個(gè)treegrid列表:

                <div data-options="region:'center',border:false">                    <div id="layout" class="easyui-layout" data-options="fit:true,border:false">                        <div data-options="region:'west',border:false,split:true" style="width:220px">                            <table id="dgDept">                            </table>                        </div>                        <div data-options="region:'center',border:false">                            <table id="dg">                            </table>                        </div>                    </div>                </div>

然后在js里加入一個(gè)loadDepts函數(shù),并且一開始就加載部門樹:

        $(function () {            loadDepts();            loadData();        })        function loadDepts() {            $('#dgDept').treegrid({                url: 'DeptList.ajx/GetDepts',                fit: true,//自動填充                idField: 'id',                treeField: 'text',                columns: [[                    { field: 'text', title: '部門', width: 180 }                ]],                onClickRow: function (row) {                    $('#dg').datagrid({                        queryParams: { deptNo: row.attributes.no }                    });                }            })        }

修改loadData函數(shù),把不需要的列移除掉,然后,瀏覽EmployeeList.aspx頁面,顯示如下:

loadDepts函數(shù)里,treegrid的onClickRow事件里,datagrid將使用no作為條件篩選員工數(shù)據(jù)。修改EmployeeList.aspx.cs類中的GetEmployees方法,增加一個(gè)參數(shù)deptNo,如下:

        /// <summary>        /// 根據(jù)查詢條件獲取員工。        /// </summary>        /// <param name="deptNo">部門編碼。</param>        /// <param name="keyWord">關(guān)鍵字</param>        /// <returns></returns>        [ExceptionBehavior(true)]        public object GetEmployees(string deptNo, 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(!string.IsNullOrEmpty(keyword), s => s.Name.Contains(keyword))                    .ToList();                return EasyUIHelper.Transfer(pager, list);            }        }

AssertWhere是一個(gè)擴(kuò)展方法,來自Fireasy.Common.Extensions,如果deptNo不為空的時(shí)候,使用Dept這個(gè)關(guān)聯(lián)屬性的No進(jìn)行l(wèi)ike查詢,也就是說TB_EMPLOYEE join 上 TB_DEPT查詢。

EasyUIHelper的GetDataPager用于構(gòu)造easyui-datagrid傳遞過來的兩個(gè)分頁參數(shù),構(gòu)造出一個(gè)分頁對象pager,Linq再使用Segment擴(kuò)展方法將pager傳進(jìn)去分頁。最后,使用Transfer方法把結(jié)果轉(zhuǎn)換為 { total: 10, rows: [] } 這樣的json結(jié)構(gòu)。

增加額外的查詢條件。

我們在EmployeeList.aspx的query區(qū)加入日期和崗位查詢條件。

                    <div class="query">                        <table>                            <tr>                                <td>出生日期</td>                                <td><input id="txtStartTime" class="easyui-datebox" style="width:110px" /></td>                                <td>至</td>                                <td><input id="txtEndTime" class="easyui-datebox" style="width:110px" /></td>                                <td>崗位</td>                                <td><input id="txtPost" class="easyui-combobox" data-options="url:'EmployeeList.ajx/GetPosts',valueField:'Value',textField:'Name',panelHeight:'auto'" style="width:110px" /></td>                                <td>快速查詢</td>                                <td>                                    <input id="txtKeyword" type="text" class="easyui-textbox enterQuery" data-options="

在EmployeeList.aspx.cs里增加方法GetPosts,該方法用于獲取崗位代碼,崗位代碼我們先用枚舉來表示。

枚舉定義在WebApplicaiton1.Data的Enums.cs里。對了,還需要一個(gè)性別的枚舉,這個(gè)時(shí)候一起定義好了。

    public enum PostKinds    {        [EnumDescr

EnumDescriptionAttribute是用于標(biāo)記中文描述的特性。

GetPosts方法就是將該中文描述和枚舉值返回給前臺。

        public object GetPosts()        {            var list = typeof(PostKinds).GetEnumList()                .Select(s => new { Value = s.Key.ToString(), Name = s.Value })                .ToList();            list.Insert(0, new { Value = "", Name = "--全部--" });            return list;        }

修改EmployeeList.aspx中的query函數(shù),加入查詢條件:

        //查詢        function query() {            $('#dg').datagrid('unselectAll');            $('#dg').datagrid({                queryParams: {                    startTime: $('#txtStartTime').datebox('getValue'),                    endTime: $('#txtEndTime').datebox('getValue'),                    post: $('#txtPost').combobox('getValue'),                    keyword: $('#txtKeyword').val()                }            });        }

相應(yīng)的在EmployeeList.aspx.cs中,修改GetEmployees方法,加入這三個(gè)參數(shù)。

        /// <summary>        /// 根據(jù)查詢條件獲取員工。        /// </summary>        /// <param name="deptNo">部門編碼。</param>        /// <param name="startTime">開始日期。</param>        /// <param name="endTime">結(jié)束時(shí)間。</param>        /// <param name="post">崗位類別。</param>        /// <param name="keyword">關(guān)鍵字</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))                    .ToList();                return EasyUIHelper.Transfer(pager, list);            }        }

注意,由于日期可以置空,所以參數(shù)中應(yīng)使用可空類型,然后使用AssertWhere擴(kuò)展方法來拼接LINQ。

參數(shù)post使用了PostKinds枚舉類型,我們需要修改一個(gè)Employee實(shí)體類型的Post屬性類型由原來的int?改成PostKinds:

        /// <summary>        /// 獲取或設(shè)置職務(wù)。        /// </summary>        public PostKinds Post        {            get { return (PostKinds)GetValue(EpPost); }            set { SetValue(EpPost, value); }        }

好了,員工列表頁面至此就做完了。

二、員工編輯頁面

打開EmployeeEdit.aspx,調(diào)整表單區(qū)域如下:

    <% var Html = new HtmlHelper<Webapplication.Data.Model.Employee>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 神池县| 盐源县| 金山区| 霍林郭勒市| 日土县| 巴林右旗| 南华县| 韶山市| 微博| 南木林县| 浦东新区| 肃宁县| 玉屏| 东明县| 基隆市| 习水县| 福泉市| 扶绥县| 诸城市| 灵丘县| 台中县| 炉霍县| 西乌| 秦皇岛市| 灵璧县| 衡东县| 宜阳县| 安陆市| 来宾市| 和平区| 康保县| 东乡族自治县| 和顺县| 桂阳县| 锦州市| 琼结县| 宽城| 湘乡市| 确山县| 昆明市| 西畴县|