EasyUI

一些小的注意点:

  • 当我们想要使用datagrid(数据表格引入数据时):
    加入数据格式是下列这样:
{
  "name": "张三",
  "date": "2020-10-01",
  "email": "zhangsan@qq.com",
  "department": {
    "id": 1,
    "name": "技术部"
  },
  "state": true
}

我们要引用department(部门)里边的name(名字),需要使用单元格formatter(格式化器)函数。
department是一个对象,包含了id和name,要获取name,就需要使用formatter先格式化。
formatter自带了三个参数,其中row就是记录的数据
下面是引入数据的格式:
使用传入的row,来获取部门的姓名,直接返回,即可显示到页面中

{field:'department',title:'部门',width:200,align:'right',formatter: function(value,row,index){
        return row.department.name;
    }}
数据表格,datagrid:
行填充 fit:true 列填充:fitColumns:true
  • 在页面最开始的时候可以使用layout布局,比较方便
  • 我们若是想要实现,点击tree,可以弹出一个tabs(选项卡),那我们在监听tree的onclick时间的时候,需要注意,要添加if语句进行判断当前点击的页面是否存在,若存在,直接选择,不存在的话,再添加。
$('#tree').tree({
    url:'tree.json',
    onClick: function(node){

        var exist = $("#tabs").tabs('exists',node.text);
        if(exist){

            $("#tabs").tabs('select',node.text);

        }else{
            $("#tabs").tabs('add',{
                title:node.text,
                closable:true,
                content:"<iframe src="+node.attributes.url+" style='width:100%;height:100%'></iframe>"
            })
        }

    }
});
  • 我们再引入其他html页面的时候,一般在Content中使用<iframe>标签引入,而不直接使用<href>标签来引入,因为href标签没有办法引入html页面的css央视。
content:"<iframe src="+node.attributes.url+" style='width:100%;height:100%'></iframe>"
  • tree.json
    attributes属性:被添加到节点的自定义属性。
[
  {"id":1,
  "text":"系统菜单",
  "iconCls":"icon-text",
    "children": [{
      "text": "员工管理",
      "attributes": {
        "url": "employee.html"
      }
    },{
      "text": "用户管理",
      "attributes": {
        "url": "department.html"
      }
    }
    ]

}
]
  • 让下拉框高度自动适应:
    使用 panelHeight:‘auto’
/*部门 下拉框*/
$("#department").combobox({
    url:'department.json',
    width:160,
    panelHeight:'auto',
    valueField:'id',
    textField:'name'
});
  • 提交表单
    $.messager.alert:数据保存后弹出的提示,比alert好看
    data = $.parseJSON(data):将返回的数据解析成JSON数据
    $("#dg").datagrid('reload')
    ("#dialog").dialog('close'):
    在保存数据之后,关闭dialog窗口,并重新加载datagrid数据表格。
handler:function(){
    /*提交表单*/
    $('#myform').form('submit', {
        url:'save.json',
        success:function(data){
            console.log(data)
            /*解析成JSON格式*/
            data = $.parseJSON(data);
            console.log(data)
            if(data.success){
                $.messager.alert('温馨提示',data.msg);
                $("#dg").datagrid('reload')
                $("#dialog").dialog('close')
            }else{
                $.messager.alert('温馨提示','保存失败')
            }

        }
    });
}
  • 点击编辑按钮,可以数据回显

当我们保存,编辑等多处用到dialog窗口时,我们就可以把dialog写在外边,设置一个属性,closed:true,在需要用dialog的时候,$("#dialog").dialog(“open”)打开即可。

$("#dg").datagrid("getSelected"):可以用于获取鼠标选中的行的数据

可以使用$("#myform").form("load",rowData),当form表单name和得到的数据中的name相同时,即可自动加载数据。

如果我们获得的数据是一个对象,我们可以把这个对象里我们需要的值赋给一个name,将这个name保持与form表单的name相同,即可加载。

获取的数据始boolean类型的话,在后边拼接上字符串,转换为字符串类型,才可以被识别。

/*编辑*/
$("#edit").click(function () {

    /*获取选中的行,获取数据,放在rowData中*/
    var rowData = $("#dg").datagrid("getSelected");

    if(rowData==null){
        $.messager.alert("温馨提示","请选择一行数据进行编辑");
        return ;
    }

    $("#dialog").dialog("open");

    /*因为department是一个对象,所以没有department.id的数据,给department.id赋值*/
    rowData["department.id"]=rowData["department"].id;

    /*state为boolean类型,需要转换为字符串类型,才可以自动识别,并数据回显*/
    rowData["state"]=rowData["state"]+"";
    /*数据回显  :  根据同名匹配,让表单自动加载数据*/
    $("#myform").form("load",rowData);
})
  • 我们的编辑和保存使用的是一个dialog,所以在点击保存的时候显示编辑的按钮,我们需要吧数据清空
    注意:清空数据要清空form表单的数据,不是清空dialog的数据,否则dialog里边会变成空白
$("#add").click(function () {
    $("#myform").form("clear")
    $("#dialog").dialog("open");
})
  • 编辑和保存提交表单的url地址不同,所以需要区分,可以在数据表格获取的数据中多加一行数据id,在form表单中添加一个<input type="hidden" name="id">,我们就可以根据id是否为null来区分编辑和保存
    id为空则是保存
    id不为空则是编辑,因为编辑的时候需要数据回显,这时候就可以取出数据表格中隐藏的值id

使用 $("[name='id']").val(),来获取name为id的属性的值

/*区分编辑和保存提交的url*/

var id = $("[name='id']").val();
var url;
if(id){
    /*如果id有值的话,是编辑操作*/
    url='update.json';
}else {
    /*如果id为空,是保存操作 */
    url='save.json';
}
/*提交表单*/
$('#myform').form('submit', {
    url:url
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

11来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值