Ejemplo n.º 1
0
        /// <summary>
        /// 返回带有JqGrid的Model
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="handler">处理事件</param>
        /// <param name="hasOperCol">包含操作列</param>
        /// <param name="initCondition">初始化条件</param>
        /// <param name="isGlobalCondition">是否为全局条件</param>
        /// <returns></returns>
        protected JqGridViewModel GetJqGridModel(string tableName, Action <QuerySet> handler = null, bool hasOperCol = false)
        {
            JqGridViewModel model = new JqGridViewModel()
            {
                JqgridId = tableName
            };
            QuerySet qs = new QuerySet()
            {
                TableName   = tableName,
                InitWhere   = "",
                GlobalWhere = "",
                QueryCols   = "*"
            };

            //事件处理
            handler?.Invoke(qs);
            var allCols = _dbContext.Columns(tableName);
            //默认排序
            var sorts = allCols.Where(c => c.SortDirection.IsPresent());

            foreach (var sort in sorts)
            {
                qs.AddOrderBy(sort.ColName, sort.SortDirection);
            }
            //当排序没有设置的时候,设置创建时间倒序排列
            if (!qs.OrderByList.Any())
            {
                //qs.AddOrderBy("CreateDate", "desc");
                qs.AddOrderBy("Id", "desc");
            }
            qs.InitWhere   = qs.InitWhere.IsPresent() ? ReplaceSafeSql(qs.InitWhere) : "";
            qs.GlobalWhere = qs.GlobalWhere.IsPresent() ? ReplaceSafeSql(qs.GlobalWhere) : "";
            model.QuerySet = qs;
            return(model);
        }