2011-12-18 48 views
0

我對jqGrid相當新,這似乎是一個偉大的事情。有很多很棒的文檔。 我在編輯時遇到了困難。我有一個有多行的網格,除了第一行外,我無法編輯所有的行,當行ID是0時,方法'editGridRow'有問題。當行ID是其他時,它可以工作精細。其他方法,如'getCell'工作正常,即使當行id = 0時也是如此。editGridRow方法工作正常,除了當RowId是0. jqGrid

我該如何解決這個問題?

感謝您的幫助。

$("#grid").jqGrid({ 
       altRows: true, 
       datatype: 'local', 
       direction: 'rtl', 
       height: '100%', 
       mtype: 'POST', 
       hidegrid: false, 
       colNames: ['מספר הקלסר', 'שם השולח', 'מעגל', 'נושא ראשי', 'הגוף המשלם', 'מספר ארגז', 'תאריך שליחה', 'תאריך התחלה', 'תאריך סיום', 'תאריך גריסה', ''], 
       colModel: [ 
          { name: 'idFolders', index: 'idFolders', align: 'center', sorttype: 'int' }, 
          { name: 'SenderName', index: 'SenderName', align: 'center', editable: true }, 
          { name: 'Maagal', index: 'Maagal', align: 'center', editable: true }, 
          { name: 'MainSubject', index: 'MainSubject', align: 'center', editable: true }, 
          { name: 'PayerName', index: 'PayerName', align: 'center', editable: true }, 
          { name: 'BoxNumber', index: 'BoxNumber', align: 'center', sorttype: 'int', editable: true }, 
          { name: 'SentDate', index: 'SentDate', align: 'center', sorttype: 'date', datefmt: 'd,m,y', editable: true }, 
          { name: 'FolderStartDate', index: 'FolderStartDate', align: 'center', sorttype: 'date', datefmt: 'd,m,y', editable: true }, 
          { name: 'FolderEndDate', index: 'FolderEndDate', align: 'center', sorttype: 'date', datefmt: 'd,m,y', editable: true }, 
          { name: 'TrashDate', index: 'TrashDate', align: 'center', sorttype: 'date', datefmt: 'd,m,y', editable: true }, 
       //A column for Buttons - edit, delete, with custom Formatter - "formattEdit" 
          {name: 'myac', align: 'right', sortable: false, resize: false, formatter: formattEdit } 
         ], 
       pager: '#pager', 
       rowNum: 10, 
       rowList: [10, 20, 30, 40, 50, 100], 
       sortname: 'idFolders', 
       sortorder: 'asc', 
       viewrecords: true, 
       gridview: true, 
       caption: 'תוצאות החיפוש', 
       editurl: 'SearchWebService.asmx/editFoldersTable', 
       ....... 

主電網

//formattEdit, creating 2 buttons - Del, Editform. 
      function formattEdit(cellvalue, options, rowObject) { 
       var del, edit, HoverString, htmlString = ""; 
       var rowid = options.rowId; 
       //Creating the Commands in a Long String 
       //Edit 
       edit = "onclick=$('#grid').jqGrid('editGridRow'," + rowid + ",{editData:{idFolders:$('#grid').jqGrid('getCell'," + rowid + ",'idFolders')}});"; 
       HoverString = " onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover');"     
       edit = edit + HoverString; 
       htmlString = htmlString + "<div title='" + $.jgrid.nav.edittitle + "' style='float:right;cursor:pointer;' class='ui-pg-div ui-inline-edit' " + edit + "><span class='ui-icon ui-icon-pencil'></span></div>"; 

       //Delete 
       del = "onclick=alert('Deleteing');"; 
       del = del + HoverString; 
       htmlString = htmlString + "<div title='" + $.jgrid.nav.deltitle + "' style='float:right;margin-right:5px;' class='ui-pg-div ui-inline-del' " + del + "><span class='ui-icon ui-icon-trash'></span></div>"; 

       //Adding it as Html     
       return "<div style='align:center;'>" + htmlString + "</div>"; 

      } 

我的自定義格式化 - 在有呼叫的 'editGridRow' 方法

//Search Button - Ajax Call 
      $("#searchBtn").click(function() { 
       if ($("#searchBox").val() == "") { 
        alert("נא הקלד חיפוש"); 
       } 
       else { 
        var grid = $("#grid") 
        grid.jqGrid("clearGridData", true).trigger("reloadGrid"); 
        $.ajax({ 
         type: 'POST', 
         contentType: "application/json; charset=utf-8", 
         url: 'SearchWebService.asmx/getTablejQgrid', 
         data: CreateSearchString(), 
         dataType: "json", 
         success: function (data, textStatus) { 
          if (textStatus == "success") { 
           var recivedData = JSON.parse(data.d); 
           $.each(recivedData.rows, function (key, value) { 
            grid.jqGrid('addRowData', key, value); 
           }); 
           grid.trigger('reloadGrid'); 
          } 
         }, 
         error: function (data, textStatus) { 
          alert('An error has occured retrieving data!'); 
         } 
        }); 
       } 
      }); 

AJAX調用,以填補電網

這也是我在Stack Overflow上的第一篇文章。希望我心中已經做了正確的方式

回答

0

解決

看來這個方法「editGridRow」有0個問題是創造價值,電網當我加入基於行的關鍵,使行ID從1開始而不是0.現在可以工作。

... 
//getting the data from the server 

success: function (data, textStatus) { 
         if (textStatus == "success") { 
          var recivedData = JSON.parse(data.d); 
          $.each(recivedData.rows, function (key, value) { 
           grid.jqGrid('addRowData', 1+key, value); 
          }); 
          grid.trigger('reloadGrid'); 
         } 
        },