Easyui使用Dialog行内按钮布局 为什么报错 怎样获取此行数据 10C
 1. <script type="text/javascript">
    $(function() {

        $('#mTb').datagrid({
        idField : 'id',
        title : '项目表',
        url : '${pageContext.request.contextPath}/matter/matterList.action',
        fit : true,
        width : '100%',
        border : false,
        loadMsg : '数据加载中...',
        pageSize : 3,
        pageList : [ 3, 6, 9 ],
        pagination : true,
        fitColumns : true,
        rownumbers : true,
        singleSelect : true,
        striped : true,
        nowrap : true,
        frozenColumns : [ [ 
            {
            field : 'id',
            title : '编号',
            rowspan : 3,
            width : 50
            }, {
            field : 'name',
            title : '文件名',
            width : 50,
            rowspan : 3
            }, {
            field : 'oldfilename',
            title : '名称',
            width : 50,
            rowspan : 3
            },{field:'opt',title:'操作',width:150,align:'center', 
                formatter:function(value,rec) 
                { 
                 var btn1 = '<a class="editcls" onclick="newRoleEdit(\''+rec.id+'\')" href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >编辑</a>'; 
                 var btn2 = '<a class="delecls" onclick="removeRole(\''+rec.id+'\')" href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >删除</a>'; 
                 return btn1+btn2;  
                } 
               } 
              ]], 
              onLoadSuccess:function(data){ 
               $('.editcls').linkbutton({text:'编辑',plain:true,iconCls:'icon-edit'}); 
               $('.delecls').linkbutton({text:'删除',plain:true,iconCls:'icon-remove'}); 
               $('.editcls').click(function(){
                   alert("111"); 
               });
               $('.delecls').click(function(index){
                   alert("22");
               });
               $('#mTb').datagrid('fixRowHeight');
              } 
            });

        $('#mTb').datagrid('hideColumn', 'oldfilename'); 

    });
</script>

<body>
    <table id="mTb">
    </table>
</body>

图片说明
问题1 单击编辑或是删除按钮 alert弹框有效果 但是报错
问题2 单击怎样获取点击行数据

自己写的代码1
图片说明
自己写的代码2
图片说明

4个回答

newRoleEdit放到window作用域下,不要放到其他函数内部,这样是私有函数,html拼接的函数需要在window作用域下,无法访问私有域下的函数或者变量

你不是传入了id,调用getRows获取所有数据行,遍历对比下id键的值一致就得到了

function newRoleEdit(id){
 var rows=$('#dg').datagrid('getRows'),row
 //注意修改
for(var i=0;i<rows.length;i++)if(rows[i].id==id){row=rows[i];break;}
//row就是点击编辑对应的行对象,你的其他代码
}
showbo
支付宝加好友偷能量挖 回复Jhui_0508: 建议你先去看下js基础,作用域都没搞清楚,不要直接学框架。====》newRoleEdit放到window作用域下
大约 2 年之前 回复
Jhui_0508
Jhui_0508 回复Q155132206可买实惠C币: 还是不太明白
大约 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复Jhui_0508: 认真看标题,你直接jquery绑定的事件id是传不进去的,id是点击的事件对象
大约 2 年之前 回复
Jhui_0508
Jhui_0508 $('.editcls').click(function(id){ var rows=$('#mTb').datagrid('getRows'); for(var i=0;i<rows.length;i++){ if(rows[i].id==id){ var row=rows[i]; } } alert("11"); }); 我是按照你说的这样写的 没反应 不知道为什么 抱歉初学者 不太懂
大约 2 年之前 回复

应该不能用Dialog吧

如果是需要操作获取行数据,可以使用datagrid的formatter列属性 {
field: 'caozuo', title: '操作', width: 180, align: 'center',
formatter: function (value, rowData, rowIndex) {
return getActionItems(rowData, rowIndex);
}
}
value 获取单列字段值、rowData获取整行字段列值、rowIndex得到行索引 。
getActionItems 你可以在这里自定义你的操作方式
function getActionItems(rowData) {
var items = "";
if (rowData.IsOwner == 0) {
items += ' 详情';
}
else {
items += ' 详情';
}
return items;
}

如果是需要操作获取行数据,可以使用datagrid的formatter列属性 {
field: 'caozuo', title: '操作', width: 180, align: 'center',
formatter: function (value, rowData, rowIndex) {
return getActionItems(rowData, rowIndex);
}
}
value 获取单列字段值、rowData获取整行字段列值、rowIndex得到行索引 。
getActionItems 你可以在这里自定义你的操作方式
function getActionItems(rowData) {
var items = "";
if (rowData.IsOwner == 0) {
items += ' 详情';
}
else {
items += ' 详情';
}
return items;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问