EasyUI 问题记录

1、validatebox无法通过setValue设置值,使用jQuery方式获取及设置

其余combox、numberbox、datebox、datetimebox,都可以使用setValue方法

<input class="easyui-validatebox" type="text" name="start_site_code" data-options="required:true"/>

$("input[name='start_site_code']").val(code)

 $("#input_id").textbox("setValue", "xxx");
 $("#input_id").combox("setValue", "xxx");
 $("#input_id").numberbox("setValue", "xxx");
 $("#input_id").datebox("setValue", "xxx");
 $("#input_id").datetimebox("setValue", "xxx");

2、初始化取消表单验证

初始化时 自动带出的数据填入表单,表单的验证样式依然在,点击后才会变白
在这里插入图片描述

// 加载页面时就禁用验证,点击input框开启
$('input.easyui-validatebox').validatebox('disableValidation')
    .focus(function () { $(this).validatebox('enableValidation'); })
    .blur(function () { $(this).validatebox('validate') })

但是这里你禁用后,点提交时是不会对表单验证的,这时要重新开启验证

if (!$('#form').form('enableValidation').form('validate')) {
    showMessager('提示消息', '请先写完整进行提交', 'warning');
    return;
}

3、dataGrid尽量不要嵌入在Tabs下,是没效果的

4、dataGrid自动生成可编辑的空表格

很菜,只写出这样

<table id="dggggg"></table>

function radioChange() {
    if (radioValue == 1) {
        tabsTableColumns = [
            [{
                field: 'id',
                title: 'id(必填项)',
                editor: 'text',
                align: 'center',
                width: '200',
            }, {
                field: 'name',
                title: '姓名',
                editor: 'text',
                align: 'center',
                width: '200',
            }]
        ]
        tabsTableData = [
            {
                id: null,
                name: null,
            }, {
                id: null,
                name: null,
            },{
                id: null,
                name: null,
            }]
    }
    loadBatchNewTable()
}

function loadBatchNewTable() {
    $("#dggggg").datagrid({
    	// 最好给一个初始化的宽高,不然有时候会渲染不出来
        height: 300,
        width: 850,
        // 动态设置表格
        data: tabsTableData,
        columns: tabsTableColumns,
        // 条纹样式
        striped: true,
        // 点击单元格加载
        onClickCell: function (index, field, value) {
        	// 单元格变成输入框
            $(this).datagrid('beginEdit', index); 
            var ed = $(this).datagrid('getEditor', {
                index: index,
                field: field
            });
            // 输入框获得焦点
            $(ed.target).focus();
            // 绑定blur事件
            $(ed.target).bind("blur", function(e){
                let val = e.target.value
                if(val) {
                    // 这里可以写失去焦点后的一系列操作
                    // ......
                }
            });
            // $(this).datagrid('endEdit', index);    // 结束编辑状态,触发onAfterEdit事件
        }
    });
}

// 这里是如果你有调用接口回填信息的需求,可以通过getRows获取某行,以及在上面onClickCell方法中可以拿到当前行的index,赋值后可以refreshRow刷新下
let dataRows = $('#dggggg').datagrid('getRows');
dataRows[rowIndex]['name'] = name
$('#dggggg').datagrid('refreshRow', rowIndex);

// 提交grid
function submitDataGrid() {
    let endRows = $('#dggggg').datagrid("getRows");
    // 将 dataGrid 所有的行都结束编辑
    for (let i = 0; i < endRows.length; i++) {
        $('#dggggg').datagrid('endEdit', i);
    }
    // 获取编辑的数据
    let rows = $('#dggggg').datagrid("getRows")
    // 过滤空数据
    let result = rows.filter(item => {
        return Object.values(item).some(i => i)
    })
}

5、数据列自动填充满dataGrid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值