纸壳CMS(ZKEACMS)里的Grid是一个TagHelper,是对jQuery插件datatables的一个配置封装。

Easy.Mvc.TagHelpers.GridTagHelper

  

grid的使用很简单,设置Model,使用<grid>标签就可以了:

@model ArticleEntity
<grid></grid>

  

Grid的默认值

1. ModelType

列表默认使用View设置的Model的Type作为Grid的ModelType,并使用它的配置元数据来呈现列表。例如:@model ArticleEntity列表则会使用ArticleEntity的元数据ArticleEntityMeta来呈现列表。如果要特别指定这个ModelType,可以在Grid中进行设置:

<grid model-type="typeof(ArticleEntity)"></grid>

  

2. 编辑

编辑链接

默认的编辑链接是当前的Controller的Edit Action加主键。如文章,ArticleController,则编辑链接则是:/admin/Article/Edit/{id},也可以直接指定这个Action:

<grid edit="Edit"></grid>

  

编辑UI模板

默认的编辑模板是一个带有编辑图标的链接:

<a href="{0}" class="glyphicon glyphicon-edit"></a>

  

也可以在grid中设置这个模板,比如设置成按钮:

<grid edit-template="@("<a href=\"{0}\" class=\"btn btn-default\">Edit</a>")"></grid>

  

设置是否可编辑:

<grid edit-able="false"></grid>

  

3. 删除

删除链接

默认的删除链接是当前的Controller的Delete Action加主键。如文章,ArticleController,则删除链接则是:/admin/Article/Delete/{id},也可以直接指定这个Action:

<grid delete="Delete"></grid>

  

删除UI模板

默认的编辑模板是一个带有删除图标链接:

<a href=\"{0}\" class=\"glyphicon glyphicon-remove\"></a>

  

也可以在grid中设置这个模板,比如设置成按钮:

<grid delete-template="@("<a href=\"{0}\" class=\"btn btn-danger\">Delete</a>")"></grid>

  

注意:修改了这个删除模板,可能要注意同时配合修改~/wwwroot/js/dataTable.js

设置是否可删除:

<grid delete-able="false"></grid>

  

4. 数据源

默认的数据源是当前的Controller的GetList Action,以Post的方式获取数据。也可以直接指定这个Action:

<grid source="GetList"></grid>

  

返回数据示例:

[HttpPost]
public virtual IActionResult GetList(DataTableOption query)
{
var pagin = new Pagination { PageSize = query.Length, PageIndex = query.Start / query.Length };
var expression = query.AsExpression<TEntity>();
var order = query.GetOrderBy<TEntity>();
if (order != null)
{
if (query.IsOrderDescending())
{
pagin.OrderByDescending = order;
}
else
{
pagin.OrderBy = order;
}
}
var entities = Service.Get(expression, pagin);
return Json(new TableData(entities, pagin.RecordCount, query.Draw));
}

  

在列表中显示字段

列表的字段显示,需要在元数据里面配置。元数据配置http://www.zkea.net/codesnippet/detail/post-94.html

调用.ShowInGrid()该字段就会显示在列表中:

ViewConfig(m => m.ImageUrl).AsTextBox().MediaSelector().ShowInGrid();

  

配置搜索

.ShowInGrid().Search(Query.Operators.Contains)

  

配置UI模板

.ShowInGrid().SetGridColumnTemplate("<img src=\"{imageUrl}\"/>");

注意:字段名使用的是驼峰命名方式,如字段名是ImageUrl,则使用的时候是{imageUrl}

排序

grid默认以最后更新时间(LastUpdateDate)倒序。也可以直接在grid中进行设置:

<grid order-asc="ID"></grid>
<grid order-desc="ID"></grid>

自定义样式

可以使用以下方式进行设置自定义样式class:

<grid grid-class="table"></grid>

原文地址:http://www.zkea.net/zkeacms/document/grid

纸壳CMS列表Grid的配置的更多相关文章

  1. 在Docker中运行纸壳CMS并配置使用MySql

    纸壳CMS是基于ASP.Net Core开发的可视化内容管理系统,可以跨平台部署,可以在容器中运行.接下来看看如何在docker中运行纸壳CMS. GitHub:https://github.com/ ...

  2. 纸壳CMS主题增强,支持主题中加入模板

    背景 在之前,纸壳CMS的主题仅仅只是CSS样式,并不支持在主题下使用模板来构建不同的HTML结构.现在我们对主题功能做了增强,可以在主题下添加各自的模板,这样在制作主题时,就会更加自由.不仅如此,新 ...

  3. 使用vs code开发纸壳CMS并启用Razor智能提示

    关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: 下载代码 GitHub:https://github.com/Seri ...

  4. 纸壳CMS 3.0升级.Net Core 2.1性能大提升

    微软发布了.Net Core 2.1正式版,纸壳CMS也在第一时间做了升级,并做了一系列的优化和调整,性能大幅提升,并解决了一些历史遗留问题,添加了一些新功能. Github https://gith ...

  5. 纸壳CMS 2.3,正式加入商城功能

    纸壳CMS发布了2.3版本,主要是添加了商城功能,强化产品功能.让您的网站轻松实现电子商务. 有关2.3版本的更多信息,请查看以下链接: https://github.com/SeriaWei/ZKE ...

  6. 纸壳CMS替换默认实现

    简介 纸壳CMS是一个开源免费的可视化内容管理建站系统,拖拽就可以轻松建网站. GitHub: http://github.com/SeriaWei/ZKEACMS 纸壳CMS在设计上使用的是ASP. ...

  7. ASP .Net Core路由(Route) - 纸壳CMS的关键

    关于纸壳CMS 纸壳CMS是一个开源免费的,可视化设计,在线编辑的内容管理系统.基于ASP .Net Core开发,插件式设计: GitHub:https://github.com/SeriaWei/ ...

  8. 纸壳CMS可视化建站系统搭建多语言网站

    纸壳CMS是可视化建站系统,现已经从架构上支持多语言.但是多语言功能默认是没有开启的.您可以从设置中开启多语言,或者随时关闭它,您可以随时进行切换. 开启多语言 如果您没有在系统设置中看到多语言设置菜 ...

  9. 纸壳CMS的插件加载机制

    纸壳CMS是一个开源的可视化设计CMS,通过拖拽,在线编辑的方式来创建网站. GitHub https://github.com/SeriaWei/ZKEACMS.Core 欢迎Star,Fork,发 ...

随机推荐

  1. firemonkey Grid自定义

    http://stackoverflow.com/questions/28893564/memory-leak-on-tstringgrids-ondrawcolumncell-event http: ...

  2. VMware CentOS Device eth0 does not seem to be present

    在VMware里克隆出来的CentOS Linux.. ifconfig...没有看到eth0..然后重启网卡又报下面错误. 故障现象: service network restartShutting ...

  3. Git----时光穿梭机01

    看这篇文章之前可以先阅读  https://www.cnblogs.com/cxq0017/p/9645944.html 创建版本库这篇文章 我们已经成功地添加并提交了一个readme.txt文件,现 ...

  4. node升级更新最近稳定版

    今天,又发现一个超级简单的升级Node.js的方法.一行命令搞定,省去了重新编译安装的过程. node有一个模块叫n(这名字可够短的...),是专门用来管理node.js的版本的. 首先安装n模块: ...

  5. 01-E-1: 迭代与递归

  6. ubuntu下的文件夹命名

    本文主要学习引用了http://dbua.iteye.com/blog/943945的方法.分享快乐,嘿嘿. 由于本人菜鸟一枚,所以ubuntu选的中文,但是安装后会发现文件夹名称,什么桌面啦,下载啦 ...

  7. JavaScript Math.floor() 方法

    定义和用法: floor() 方法可对一个数进行下舍入. 语法: Math.floor(x); x:必须参数,可以是任意数值或表达式: 返回值: 小于等于 x,且与 x 最接近的整数. 说明: flo ...

  8. 邮槽 匿名管道 命名管道 剪贴板 进程通讯 转自http://www.cnblogs.com/kzloser/archive/2012/11/04/2753367.html#

    邮槽 通信流程: 服务器 客户端 注意: 邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输 邮槽可以实现一对多的单向通信,我们可以利用这个特点编写一个网络会议通知系统,而且实现这一的系 ...

  9. Condition Variable使用及其Thread Cancellation线程取消

    条件变量Condition Variable的一般用法: 唤醒用法: struct { pthread_mutex_t mutex; pthread_cond_t cond; //whatever v ...

  10. 状态模式c#(状态流转例子吃饭)

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace 状态模式{   ...