JqGrid基本网格示例保存新行时出错
我使用的基本网格示例来自: 处理用户单击“编辑”、“保存”和“取消”按钮的以下事件:JqGrid基本网格示例保存新行时出错,jqgrid,Jqgrid,我使用的基本网格示例来自: 处理用户单击“编辑”、“保存”和“取消”按钮的以下事件: jQuery("#ed1").click(function() { var id = jQuery('#rowed1').jqGrid('getGridParam','selrow'); jQuery("#rowed1").jqGrid('editRow', id); this.disabled = 'true'; jQuery("
jQuery("#ed1").click(function() {
var id = jQuery('#rowed1').jqGrid('getGridParam','selrow');
jQuery("#rowed1").jqGrid('editRow', id);
this.disabled = 'true';
jQuery("#sved1,#cned1").attr("disabled", false);
});
jQuery("#sved1").click(function() {
var rowid = jQuery('#rowed1').jqGrid('getGridParam','selrow');
alert('id: ' + rowid);
jQuery("#rowed1").jqGrid('saveRow', rowid , false );
jQuery("#sved1,#cned1").attr("disabled", true);
jQuery("#ed1").attr("disabled", false);
jQuery("#aded1").attr("disabled", false);
});
jQuery("#cned1").click(function() {
var id = jQuery('#rowed1').jqGrid('getGridParam','selrow');
jQuery("#rowed1").jqGrid('restoreRow', id);
jQuery("#sved1,#cned1").attr("disabled", true);
jQuery("#ed1").attr("disabled", false);
jQuery("#aded1").attr("disabled", false);
});
jQuery("#aded1").click(function() {
jQuery("#rowed1").jqGrid('addRow', 'new');
this.disabled = 'true';
jQuery("#sved1,#cned1").attr("disabled", false);
});
以及按钮的html:
<input type="BUTTON" id="aded1" value="Add Row" />
<input type="BUTTON" id="ed1" value="Edit row 3" />
<input type="BUTTON" id="sved1" disabled='true' value="Save row 3" />
<input type="BUTTON" id="cned1" disabled='true' value="Cancel Save" />
但电网运行不正常,因为:
保存新行后,它将保持选中状态,我无法选择其他行。
当我取消编辑一行时,它会删除其他几行。
当我再次点击时
google chrome调试器控制台的“添加新行”按钮显示错误:未捕获类型错误:无法读取未定义的属性“名称”
我几乎可以肯定这与新的行id有关,但经过两天的尝试,我将非常感谢您的帮助,提前感谢您将错误的参数传递给addRow。从: 呼叫约定:
jQuery("#grid_id").jqGrid('addRow',parameters);
其中,参数是一个对象,具有以下默认值:
parameters =
{
rowID : "new_row",
initdata : {},
position :"first",
useDefValues : false,
useFormatter : false,
addRowParams : {extraparam:{}}
}
此外,每次都要将rowID设置为一个新值。可以显式执行此操作,也可以将其设置为未定义,以便jqGrid为每一新行分配一个随机ID
例如:
jQuery("#aded1").click(function() {
var parameters = {
rowid : undefined,
initdata : {},
position :"first",
useDefValues : false,
useFormatter : false,
addRowParams : {extraparam:{}}
};
jQuery("#rowed1").jqGrid('addRow', parameters);
});
贾斯汀。仍然只是正确添加第一行,然后我尝试添加一个新行,但没有保存。我尝试使用undefined,但我不太明白在哪里使用它,我设置了rowid:undefined,但它不起作用..要添加新行:jQueryaded1.clickfunction{parameters={rowid:new_Row,initdata:{},position:first,useDefValues:false,useFormatter:false,addRowParams:{extraparam:{}}jqGrid'addRow',parameters;};保存:jQuerysved1.clickfunction{var rowid=jQuery'rowed1'.jqGrid'getGridParam','selrow';jQueryrowed1.jqGrid'saveRow',rowid;};我更新了我的答案;请参阅底部的示例代码。此外,如果您感兴趣,本文将进一步解释如何使用undefined生成行ID:不,这是我之前尝试使用undefined属性时所做的操作,但我遇到一个错误,该错误表示未定义行ID。我想问题是当我保存记录时。当我在save函数jQueryrowed1.jqGrid'saveRow',rowid;中将rowid作为参数传递时,jquery如何知道它;?
jQuery("#aded1").click(function() {
var parameters = {
rowid : undefined,
initdata : {},
position :"first",
useDefValues : false,
useFormatter : false,
addRowParams : {extraparam:{}}
};
jQuery("#rowed1").jqGrid('addRow', parameters);
});