2011-02-25 4 views
0

jqGrid를 설정하여 테이블에 행을 추가하려고하지만 editGridRow()가 아무 것도하지 않습니다. 그리드가 샘플 데이터로 표시되고 채워지며 'Add Record'버튼이 이벤트를 발생 시키지만 (경고 발생), 아무 것도 표시되지 않습니다.editGridRow는 아무 것도하지 않습니다

아마 내가 사용하는 그리드 사양에 bRc가없는 것 같습니다. addRowData()를 통해 스텁 데이터를 채우고 있습니까? 나는 여기서 당황하고있다.

업데이트 : editGridRow는 HTML에 포함되지 않은 CSS 스타일 시트에 따라 다릅니다.

HTML : 그리드 및 이벤트를 설정

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

코드 : 객체 pageData.gridData에 배치 그리드

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

사양.

{ 
    '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 스타일 시트에 따라 (, 개체 속성 등, 따옴표에없는 그래서 진정한 사실이된다. 이러한 파이썬 값이며, griData에 통과하기 전에 jasonified, 유의하시기 바랍니다) .

CSS 스타일 시트를 HTML에 통합하면 추가 데이터 대화 상자가 갑자기 나타납니다.

+0

문제가 해결되고 그리드가 지금 필요한 모든 것을 수행합니까? – Oleg

+0

_ 문제가 해결되었습니다. 나는 이것을 닫았지만, stackoverflow는 원래의 포스터를 2 일 동안 그렇게하지 않을 것이라고 표시했을 것이다. 관심을 가져 주셔서 감사합니다. – chernevik

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 소스 코드를 살펴 봐야합니다.

관련 문제