2011-02-25 115 views
0

我试图设置jqGrid向表中添加一行,但editGridRow()没有做任何事情。网格显示并填充样本数据,“添加记录”按钮触发事件(警报触发),但是没有。editGridRow什么都不做

也许我的网格规范是缺少的东西B/C我通过addRowData()填充存根数据?我在这里很困惑。

更新:editGridRow取决于CSS样式表,它不包含在我的HTML中。

HTML:

<table id="myGridTarget"><tr><td/></tr><table> 
<div id="pager"/> 
<fieldset> 
    <input id="addRowButton" type="button" value="Add Row Data"/> 
</fieldset> 

代码建立网格和事件:

jQuery(document).ready(function() {   
jQuery("#myGridTarget").jqGrid(pageData.gridData); 
var starter_data_obj = { 
         'Col_1': 'first', 
         'Col_2': 'second', 
         'Col_3': 'third', 
         'Col_4': 'fourth', 
         }; 

jQuery("#myGridTarget").addRowData('row_1', starter_data_obj, 0); 

jQuery("#addRowButton").click(function() { 
    alert("here"); 
    jQuery("#myGridTarget").jqGrid('editGridRow', "new", {height: 280, reloadAfterSubmit:false}); 
     } 
    ); 
    } 
); 

规格网格,放置在对象pageData.gridData。 (请注意,这些都是蟒蛇值,并且通道griData前jasonified。因此,真正为真,对象的属性是不是在报价等)

{ 
    'url': '', 
    'datatype': 'json', 
    'mtype': 'GET', 
    'loadonce': True, 
    'jsonReader': { 'repeatitems': False },  # potential js object issue 
    'colNames': 
     [ 
     'Col_1', 
     'Col_2', 
     'Col_3', 
     'Col_4', 
     ], 
    'colModel': 
     [ 
     { 
      'name': 'Col_1', 
      'key': True, 
      'width': 60, 
      'align': "center", 
      'hidden': False, 
      'editable': True, 
     }, 
     { 
      'name': 'Col_2', 
      'width': 80, 
      'sortable': False, 
      'hidden': False, 
      'editable': True, 
     }, 
     { 
      'name': 'Col_3', 
      'width': 180, 
      'sortable': False, 
      'hidden': False, 
      'editable': True, 
     }, 
     { 
      'name': 'Col_4', 
      'width': 180, 
      'sortable': False, 
      'hidden': False, 
      'editable': True, 
     }, 
     ], 
    'rowNum': 10, 
    'rowList': [10, 20, 300], 
    'pager': "#pager", 
    'viewrecords': True, 
    'gridview': True, 
    'rownumbers': True, 
    'height': 230, 
    'caption': 'Caption goes here', 
    'editurl': '', 
    'sortorder': 'desc', 
    } 

回答

0

的editGridRow()功能取决于jqGrid的CSS样式表。

一旦我将CSS样式表合并到我的HTML中,其他数据的对话框就会弹出。

+0

问题是否已解决,并且网格现在可以完成所需的所有工作? – Oleg 2011-02-25 20:28:28

+0

_这个问题解决了。我会标记这封闭的,但stackoverflow不会让原来的海报两天这样做。感谢您的关注。 – chernevik 2011-02-26 21:25:41

0

首先,您应该修复TrueFalse值的问题。您发布的数据是不是在pageData.gridData中使用的数据,这使得更难找到问题。如果您包含pageData.gridData的真实定义,会更好。

pageData.gridData中找不到url,而是datatype: 'json'。你不可以做这个。

接下来可能很重要的问题是loadonce:true参数。它在第一次加载后将datatype'json'更改为'local'。表单编辑和功能editGridRow不支持使用本地数据。所以可能你会遇到editGridRow的问题,为了使它正常工作,在使用editGridRow之前你必须切换datatype'json'。然后,如果您将使用reloadAfterSubmit:true,则电网将被重新加载,并且datatype将被卡住至'json'。我不玩这种设置组合,所以你必须自己做一些实验或者检查grid.formedit.js的源代码。