DataGrid 初识

介绍

DataGrid以表格形式展示数据,并提供了丰富的选择、排序、分组和编辑数据的功能支持。DataGrid的设计用于缩短开发时间,并且使开发人员不需要具备特定的知识。它是轻量级的且功能丰富。单元格合并、多列标题、冻结列和页脚只是其中的一小部分功能。
图示:

创建表格

通过<table >标签创建DataGrid控件。在表格用<th>标签定义列。

<table class="easyui-datagrid" style="width:400px;height:250px"   
        data-options="url:'datagrid_data.json',fitColumns:true,singleSelect:true">   
    <thead>   
        <tr>   
            <th data-options="field:'code',width:100">编码</th>   
            <th data-options="field:'name',width:100">名称</th>   
            <th data-options="field:'price',width:100,align:'right'">价格</th>   
        </tr>   
    </thead>   
</table>  

说明:class=”easyui-datagrid” 表示引用easyui框架的数据表格;
style=”width:400px;height:250px” 对表格的宽高设置
data-options=”url:’datagrid_data.json’,fitColumns:true,singleSelect:true”
对表格数据及相关操作的设置,必须写在data-options中。url表示远程访问路径,在下面的远程加载数据说明, fitColumns 表示真正的自动展开/收缩列的大小,以适应网格的宽度,防止水平滚动。singleSelect表示只能选择一行,更多的属性可以参考手册中的grid属性,但是这些属性都要写在data-options中。
使用Javascript去创建DataGrid控件。

<table id="dg"></table>  
$('#dg').datagrid({    
    url:'datagrid_data.json',//远程访问路径,下面或解释
    columns:[[    //填充数据
        {field:'code',title:'代码',width:100},    
        {field:'name',title:'名称',width:100},    
        {field:'price',title:'价格',width:100,align:'right'}    
    ],[
     {field:'code',title:'代码',width:100},    
        {field:'name',title:'名称',width:100},    
        {field:'price',title:'价格',width:100,align:'right'}    
    ]]    
    // columns属性为二维数组,存放多行多列数据
}); 
列属性简单说明

field 表格字段
title 表格列名
对列的宽高等都在这里面设置
在js中是设置时,在{}中
在标签中设置时,在列中的data-options中添加设置

填充表格数据

填充表格数据分为两种,

A、本地给表格写死数据

1、可以通过在标签内直接加,就像tabel操作一样
2、通过js设置,创建表格时通过js方式创建时,对colums
进行数据填充

B、远程访问服务器加载数据

tabel中的data-options属性url就是远程访问获取数据的路径,一般访问到Servlet中,在servlet中获取的数据应该是以 表格列的字段属性组成的对象 的集合,将集合写入流中,这样在前台的表格会自动抓取数据。注意的地方:前台表格中的字段和后台封装数据的对象中的字段必须一样。
例如:前台表格数据的列(列中的file字段的值)有 name ,age ,sex,
则后台的对象
data{
String name;
String age;
String sex;
构造(无参、有参)
set、get方法
}
data d =new data(name ,age ,sex,)
将d放入集合,再将集合放入流中
Servle中的代码例子

protected void getdatalist(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        req.setCharacterEncoding( "utf-8");   //设置编码字符集,一般需要在过滤器中设置,不然会出现乱码
        String suname = req.getParameter("uname");  
        int sage = RequestUtil.getIntParam(req, "age", 0);
        Reger re = new Reger();
        re.setUname(suname);
        re.setAge(sage);
        int pageno =RequestUtil.getIntParam(req, "page", 1);
        int rows = RequestUtil.getIntParam(req, "rows", 0);
        Page page = new Page(pageno,rows);
                //以上是分页查询是获取的数据,后面会讲到

          RegDao rd=  new RegDaoIml();

          Page pageA=  rd.FindWhereTo(re, page); //数据库中获取数据,这里已经对其做了封装
        Map map = new HashMap();
        map.put("total", pageA.getTotal());
        map.put("rows", pageA.getDatalist()); //集合里为获取的多行数据
        String jsonStr=JsonUtil.transToJsonStr(map); //将数据转换成json格式
        JsonUtil.outJsonStrAndColse(resp, jsonStr);  //将json写入流中
    }  
public class JsonUtil {
    //将对象转换成json字符串
    public static String transToJsonStr(Object obj){

         ObjectMapper mapper = new ObjectMapper();  
    //     mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); //表示自动去掉值为null的,当你object对象中某个成员没有设置,会自动去掉,不在传递到前台
         StringWriter sw = new StringWriter();  
         String strJson = null ;
         try {
            mapper.writeValue(sw, obj);
            strJson = sw.toString();
        } catch (JsonGenerationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return strJson ;
    }

    //将json字符串写到流中
    public static void outJsonStrAndColse(HttpServletResponse resp,String jsonStr){
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        PrintWriter out;
        try {
            out = resp.getWriter();
            out.write(jsonStr);
            out.flush();
            out.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

这样之后在前台的datagrid表格会自动抓取数据,
$(‘#dg’).datagrid(‘reload’); // 重新载入当前页面数据

DataGrid常用属性

| toolbar | 参数为数组 表格工具栏
在div标签上定义

$('#dg').datagrid({
    toolbar: '#tb'
});
<div id="tb">
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true"/a>
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-help',plain:true"/a>
</div>
//对于手册中的属性的设置多在data-options中

在js中设置

$('#dg').datagrid({
    toolbar: [{
        iconCls: 'icon-edit', //图标 在导入的jqueryeasyui中的easyui/themes/icon.css中提供
        handler: function(){alert('编辑按钮')} //点击事件
    },'-',{
        iconCls: 'icon-help',
        handler: function(){alert('帮助按钮')}
    }]
});
//数组的形式设置每个工具

| striped | 参数boolean 设置斑马线效果
| method | 参数字符串 访问时的方式 post get (必须大写)
| url | 字符串参数 访问路径

         $("#dg").datagrid({ url:"EasyUiServlet.do", method:"post",queryParams:{"uname": suname,"age": sage};});
    //查询的例子,后面会讲到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值