EasyUI 给datagrid单元格添加onmouseover事件

1、前端网页代码,设置EasyUI的datagrid:

<tableid="tt"class="easyui-datagrid"style="width:700px;height:500px;font-size:xx-large " url="../JsonData/WebForm1Data.aspx"singleSelect="true"rownumbers="true">

        <thead>

                <tr>                               

                        <th field="action"width="80"align="centor" formatter="InputAction">操作</th>

           <thfield="Field1"width="200 "align="centor">Field1</th>

                        <th field="Field2"width="80"align="centor">Field2</th>

                        <th field="Field3"width="80"align="centor">Field3</th>                               

                </tr>

        </thead>

</table>

重点:formatter="InputAction"使用InputAction函数对[操作]栏位格式化。

2、InputAction Function:

        function InputAction(value, row, index) {

            return'<a href="javascript:void(0)" id="mb' + index + '" class="easyui-menubutton" menu="#mm3" iconCls="icon-edit" οnmοuseοver="ShowMenu(' + index + ')">'+this.title+'</a>';            

        }

重点:1、添加的<div>要命名id:id="mb' + index + '"。2、为其加上onmouseover 事件的Function,以便按下菜单时能响应不同列的事件。

3、ShowMenu Function

        function ShowMenu(key) {

            $('#mm3').menu({

                onClick: function (item) {

                    if (item.id != undefined && eval(item.id) != undefined && $.isFunction(eval(item.id))) {

                        item.onclick = eval(item.id + "(" + key + ")");

                    }

                }

            });

        }

4、菜单item响应Click事件Function:

        function menuModify(key) {

            alert("menuModify");

            alert(key);

        }

 

        function menuRead(key) {

            alert("menuReady");

            alert(key);

        }

重点:Function名要与menubutton的菜单项id一致

5、前端网页代码,设置EasyUI的menubutton菜单项:

<divid="mm3"class="easyui-menu"style="width:120px;">  

    <div  iconCls="icon-save"  id="menuModify">编辑</div>  

    <divid="menuRead">只读</div>

    <divid="Div7">列印</div>

    <divid="Div8">删除</div>

    <divclass="menu-sep"></div>

    <divid="Div9">签收</div>

    <divid="Div10">提交</div>

    <divid="Div11">接受</div>

    <divid="Div12">拒绝</div>

</div>

    咦?怎么不是menubutton的效果?怎么只是超连接,而且鼠标放上去也没有反应的?
    哦,原来我们忘了在datagrid成功载入数据后对通过InputAction Function加上去的<div>进行一次menubutton效果的生成。代码如下:

       $(function () {

            $('#tt').datagrid({

                onLoadSuccess: function (data) {

                    for (i = 0; i < $('#tt').datagrid('getRows').length; i++) {        

                        $('#mb' + i).menubutton();

                    }

                }

            });

OK,这样运行后的效果就如图二所示的效果一样了!

 

总结知识点:

1、[对象].[事件]=function(){}:为对象的事件绑定Function,如Function是动态的,则可用eval(FunctionName)。

2、在datagrid成功载入数据后对动态添加的EasyUI控件进行一次相应控件的效果生成。

3、datagrid可通过formatter 属性来自定义各类超Cool的效果。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 EasyUIDataGrid 组件,你可以使用它提供的编辑器和验证规则来校验单元的必填项。下面是一种实现方式: 1. 首先,为 DataGrid 中需要校验的列配置编辑器,比如使用 text 或 combobox 编辑器。可以通过设置 `editor` 属性来指定编辑器类型。 2. 然后,在 DataGrid 的 `onBeforeSave` 事件中获取当前编辑的行数据,并进行必填校验。可以通过获取编辑器的值或其他方式来判断单元是否有值。 3. 如果单元没有值,则可以通过返回 false 来阻止保存操作,并弹出提示信息告知用户。 下面是一个示例代码: ```javascript $('#datagrid').datagrid({ // 配置列信息,包括编辑器和验证规则 columns: [{ field: 'name', title: '姓名', editor: { type: 'text' }, // 配置验证规则,设置为必填项 validate: { rules: { required: true }, messages: { required: '该字段为必填项' } } }, { field: 'age', title: '年龄', editor: { type: 'text' }, validate: { rules: { required: true }, messages: { required: '该字段为必填项' } } }], // 配置保存前的事件 onBeforeSave: function(index, row) { // 遍历列定义,判断必填项是否有值 var isValid = true; var columns = $(this).datagrid('getColumnFields'); for (var i = 0; i < columns.length; i++) { var field = columns[i]; var col = $(this).datagrid('getColumnOption', field); if (col.validate && col.validate.rules && col.validate.rules.required) { var value = row[field]; if (!value || value.trim() === '') { isValid = false; // 弹出提示信息 $.messager.alert('提示', col.validate.messages.required, 'warning'); break; } } } return isValid; } }); ``` 以上代码中,我们通过配置 `editor` 和 `validate` 属性来定义列的编辑器和验证规则。在 `onBeforeSave` 事件中,我们遍历列定义,判断必填项是否有值,若没有则阻止保存操作并弹出提示信息。 你可以根据自己的实际需求进行修改和扩展。希望能对你有所帮助!如有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值