Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JqGrid基本网格示例保存新行时出错_Jqgrid - Fatal编程技术网

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); 
});