2011-07-10 103 views
-1

雖然jqrid的stackoverflow線程非常好,但我有一些問題。可定製功能的可編輯JQGrid

1 - 我想要一個具有可編輯列的網格,添加,編輯,刪除,取消功能。

2 - 之後,我需要一些事件綁定喜歡:行選定的事件加載其子
記錄。

3 - 然後當我點擊提交然後保存整個頁面的記錄像我還有其他 我的實體的細節。

爲此,我做了一些事情,搜索不同的解決方案,但是我無法做到這一點。

這是我的一點努力:)

function JSMethod() { 
     var grid = $("#table"); 
     var ids = grid.getDataIDs(); 
     for (var i = 0; i < ids.length; i++) { 
      grid.editRow(ids[i], true); 
     }; 
    } 

    $.ajax({ 
     type: "GET", 
     url: '<%= ResolveClientUrl("~/WebService.asmx/GetLookup") %>', 
     dataType: "text", 
     success: function (result) { 
      alert('Success'); 
      lookup = result; 


     }, 
     async: false 
    }); 

    $(function() { 


     var lookup = ""; 



     $("#table").jqGrid({ 
      datatype: function (pdata) { getData(pdata); }, 
      height: 250, 
      editurl: 'default.aspx', 
      gridview: true, 
      colNames: ['ID', 'First Name', 'Last Name', 'Buttons'], 
      colModel: [ 
      { name: 'ID', width: 60, sortable: false, hidden: true }, 
      { name: 'FirstName', width: 200, sortable: false }, 
      { name: 'LastName', width: 200, sortable: false, editable: true, edittype: 'select', stype: 'select', formatter: 'select', editoptions: { value:GetData, size: 30, maxlength: 20} }, 
      { name: 'Buttons', width: 200, sortable: false } 

     ], 
      onSelectRow: function (rowId) { 
       if (rowId && rowId !== lastRowId) { 
        if (lastRowId != null) { 
         var a = $('#list').saveRow(lastRowId, false, 'clientArray'); 
         changedRows[lastRowId] = $('#list').getRowData(lastRowId); 
        } 
        jQuery('#list').editRow(rowId, true); 
       } 
       lastRowId = rowId; 
      }, 
      imgpath: '<%= ResolveClientUrl("~/styles/redmon/images") %>', 
      caption: "Sample JSON data retrieved from ASMX web services" 
     }); 
    }); 
    function getData(pData) { 
     $.ajax({ 
      type: 'POST', 
      contentType: "application/json; charset=utf-8", 
      url: '<%= ResolveClientUrl("~/WebService.asmx/GetListOfPersons") %>', 
      data: '{}', 
      dataType: "json", 
      success: function (data, textStatus) { 
       if (textStatus == "success") 
        ReceivedClientData(JSON.parse(getMain(data)).rows); 
      }, 
      error: function (data, textStatus) { 
       alert('An error has occured retrieving data!'); 
      } 
     }); 
    } 
    function ReceivedClientData(data) { 
     var thegrid = $("#table"); 
     thegrid.clearGridData(); 
     for (var i = 0; i < data.length; i++) 
      thegrid.addRowData(i + 1, data[i]); 
    } 
    function getMain(dObj) { 
     if (dObj.hasOwnProperty('d')) 
      return dObj.d; 
     else 
      return dObj; 
    } 
+0

下面是演示頁面,其中有大量可用的示例:http://trirand.com/blog/jqgrid/jqgrid.html Downvoted,因爲你甚至沒有足夠的研究能夠問一個特定的,智能的題。 – david

回答