2011-02-25 85 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的源代碼。