easyui datagrid 插入行(insertRows) 碰到问题了

yangliweng4 2014-09-15 05:20:52
如题,我有一个插入行的方法和一个更新行的方法,更新的没问题,插入行的话,得不到更新以后的数据,怎么办啊,下面是代码
using("sable.easyui");

var gv=$("#dg");

$(function(){

//测量站广播站数据
var datas_=[{label:'广播站',value:'8'},
{label:'测量站',value:'9'}];

//定义列
gv.datagrid({
columns:[[
//{field:'indexname',title:'',width:0},
{field:'objectid',title:'ID号',width:100},
{field:'objecttype',title:'类型',width:100
,formatter:function(value,row,index){
if(value==8)
{
return "广播站";
}
else if(value==9)
{
return "测量站";
}

},
editor:{
//下拉编辑器
type:'combobox',
options:{
textField:'label',
valueField:'value',
data:datas_,
required:true,
editable:false

}

}
},
{field:'objectname',title:'所在位置',width:100,editor:'text'},
{field:'objectdesc',title:'坐标',width:100}, //editor为文本编辑器
{field:'long',title:'经度',width:100,editor:'text'},
{field:'lat',title:'纬度',width:100,editor:'text'},
{field:'areaid',title:'地区代码',width:100},
{field:'fid',title:'是否图元',width:100},
{field:'operation',title:'操作',width:100,align:'center',
formatter:function(value,row,index)
{
//操作列
if(row.editing==true)
{
var s='<a href="#" onclick="saverow(this)">保存</a> ';
var c = '<a href="#" onclick="cancelrow(this)">取消</a>';
return s+c;
}
else
{
var e = '<a href="#" onclick="editrow(this)">编辑</a> ';
var d = '<a href="#" onclick="deleterow(this)">删除</a>';
return e+d;
}

}
}

]],
onBeforeEdit:function(index,row){ //编辑前

row.editing = true;
updateActions(index);

},
onAfterEdit:function(index,row){ //编辑后
row.editing = false;

updateActions(index);

},
onCancelEdit:function(index,row){ //取消编辑
row.editing = false;
updateActions(index);
}
});

});

//绑定数据
gv.datagrid( "dataBind" ,
{
autoHeight : 46 ,
datas :model.pv,
striped:true,
pagination : true,
autoRowHeight:false

});

//按条件查询
$("#btnSearch").click(function(){
//得打类型和值
var type=$("#stnmCombo").combobox('getValue');
var content=$("#queryText").val();

var para={
type:type,
content:content
}
formLoader.load("displaygppointbyinput",para,function(s){
gv.datagrid("reBind",s.pv);

})


});

//更新状态
function updateActions(index){
$("#dg").datagrid('updateRow',{
index: index,
row:{}
});
}

/*以下均为操作列方法*/
function getRowIndex(target){
var tr = $(target).closest('tr.datagrid-row');

return parseInt(tr.attr('datagrid-row-index'));

}
function editrow(target){
$('#dg').datagrid('beginEdit', getRowIndex(target));
}
function deleterow(target){
$.messager.confirm('Confirm','确定删除?',function(r){
if (r){
$('#dg').datagrid('deleteRow', getRowIndex(target));
}
});
}
function saverow(target){

var index=getRowIndex(target);

$('#dg').datagrid('endEdit',index);
getRowDataFromIndex(index);

}
function cancelrow(target){
$('#dg').datagrid('cancelEdit', getRowIndex(target));
}

//得到指定列的值
function getRowDataFromIndex(index)
{
//得到选中列
var rows = $('#dg').datagrid('getRows');

//alert(index);
var row=rows[index];
if(row)
{
var id=row.objectid; //得到ID号;
var long=row.long; //经度
var lat=row.lat; //纬度
var objectname=row.objectname; //所在位置
var type=row.objecttype; //得到广播站 或者测量站,广播站:8,测量站:9


//编辑状态
if(typeof(id)=="string")
{


//alert('2');
//alert(objectname);
//把这些数据弄成一个json对象;ps等下要做 修改UPDATE功能的哦
var pack={
id:id,
long:long,
lat:lat,
objectname:objectname,
type:type

}
//修改数据的方法
formLoader.load("modifypoint",pack,function(){
gv.datagrid("reload");

});

}
else//新建状态
{
//alert('1');
var pack_={
long:long,
lat:lat,
objectname:objectname,
type:type

}
alert(long);
formLoader.load("insertpoint",pack_,function(s){


});

}

}
}

//插入行
$("#insertRow").click(function(){

var row = $('#dg').datagrid('getSelected');
if (row){
var index = $('#dg').datagrid('getRowIndex', row);
} else {
index = 0;
}
$('#dg').datagrid('insertRow', {
index: index,
row:{long:row.long}
});

$('#dg').datagrid('selectRow',index);
$('#dg').datagrid('beginEdit',index);

});


//得到查询条件

var datas=[{label:'类型',value:'indexname'},
{label:'所在位置',value:'objectname'},
{label:'坐标',value:'objectdesc'},
{label:'经度',value:'long'},
{label:'纬度',value:'lat'}];

$("#stnmCombo").combobox({
textField:"label",
valueField:"value",
editable:false,
data:datas,
onLoadSuccess:function(){

$("#stnmCombo").combobox('setValue',datas[0].value);
}


});


求教啊,关键的问题是,那个insertrow 方法,里面带的一个row{}这里面的东西是写死的,相当于我insertrow了就只能插入写死的数据,我该怎么插入我更新后的数据呢?我要得到字符串,传到后台。
...全文
720 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
caixu52110 2015-11-03
  • 打赏
  • 举报
回复
$("#insertRow").click(function(){ var row = $('#dg').datagrid('getSelected'); if (row){ var index = $('#dg').datagrid('getRowIndex', row); } else { index = 0; } $('#dg').datagrid('insertRow', { index: index, row:{long:row.long} }); $('#dg').datagrid('selectRow',index); $('#dg').datagrid('beginEdit',index); }); 很明显啊 你定义index 定义的局部变量
yangliweng4 2014-09-15
  • 打赏
  • 举报
回复
怎么办啊?有人知道吗

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧