easyUI datagrid 怎么动态添加一行数据?

API里是这么写的

 // 在第二行的位置插入一个新行
$('#dg').datagrid('insertRow',{
    index: 1,   // 索引从0开始
    row: {
        name: '新名称',
        age: 30,
        note: '新消息'
    }
});

但如果数据是动态获取的怎么添加到一行里面,比如是通过ajax动态获取的数据

 success:function(result){
    $('#dg').datagrid('insertRow',{
    index: 1,   // 索引从0开始
    row: {
        name: result.name,
        age: result.age,
        note: result.note
    }
});
}

这样的话行是能出来,但是里面一片空白,数据无法显示,这个要怎么弄才能显示数据?

6个回答

没记错的话,result需要解析吧。var obj = eval('(' + result + ')');
alert( obj.name);

qq_23126581
渊渟无迹静涛君 回复yaqiukasi: 不客气,能对你有帮助就行
大约 2 年之前 回复
yaqiukasi
yaqiukasi 十分感谢你的回答,问题已解决
大约 2 年之前 回复

ajax指定dataType为json,你应该没有指定所以success中result为字符串而不是json对象

 dataType:'json',///////
success:function(result){
qq554251986
qq554251986 var obj = eval('(' + result + ')'); alert( obj.name);
大约 2 年之前 回复
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 dataType打错了 https://ask.csdn.net/questions/688947
大约 2 年之前 回复
//新增行数据  
function addRow(target){  
    var parentIndex = getRowIndex(target);  
    //保存父行数据,用于新增数据。  
    $j('#car_base_rule_table').datagrid('endEdit', parentIndex);  
    $j('#car_base_rule_table').datagrid('updateRow',{index: parentIndex,row:{}});  
    //获取父行数据,进行新增操作。  
    var newIndex = parentIndex+1;  
    $j('#car_base_rule_table').datagrid('selectRow',parentIndex);  
    var rowParent = $j('#car_base_rule_table').datagrid('getSelected');  
    var newRow = jQuery.extend(true, {}, rowParent);  
    $j('#car_base_rule_table').datagrid('insertRow',{  
        index:newIndex,  
      row:newRow  
    });  
}  

首先确定你的返回数据是json格式(dataType:'json') 然后就是确保你的返回数据的内容和你需要显示的内容要保持一致,只能多不能少。

两种方法:
1:调完insertRow之后调用 refreshRow方法
2:使用getData方法获取grid的数据data,然后将ajax请求的数据push到data中,最后在进行loadData

先添加进集合里,从集合作为数据源,这样页面内就可以保证显示了。

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