2016-10-10 3 views
-1

Ich bin nicht in der Lage, mehr als 500 Datensätze in einem JqGrid durch JSON zu binden, während meine Anforderung 150000 Datensätze in JqGrid binden und Seitenumbruch hinzufügen.Nicht in der Lage mehr als 500 Datensätze in jQgrid über JSON zu binden

Wenn ich TOP 400 in einer SELECT Abfrage hinzufügen, dann kann ich Datensätze anzeigen, aber für TOP 500 zeigt es leer. Unten ist mein Code:

$(document).ready(function() { 
    jQuery("#jQGridRawData").jqGrid({ 
     url: 'Transaction.aspx/GetData', 
     datatype: 'json', 
     mtype: 'POST', 
     height: 'auto', 
     serializeGridData: function(postData) { 
      return JSON.stringify(postData); 
     }, 
     ajaxGridOptions: { 
      contentType: "application/json" 
     }, 
     colNames: ["ID", "Pos", "Dep", "Systems", "Batch ID", "Check", "Code", "Amount"], 
     colModel: [{ 
      name: 'testpmsID', 
      index: 'testpmsID', 
      width: 60, 
      sortable: false, 
      search: false, 
      align: 'center' 
     }, { 
      name: "PostingDate", 
      index: "PostingDate", 
      width: 126, 
      align: 'center', 
      search: true, 
      sorttype: 'date', 
      formatter: 'date', 
      formatoptions: { 
       newformat: 'm-d-y' 
      }, //formatoptions: { srcformat: 'd/m/Y', newformat: 'd/m/Y'} 
      searchoptions: { 
       dataInit: function(element) { 
        $(element).datepicker({ 
         autoclose: true, 
         format: 'mm-dd-yy', 
         orientation: 'left' 
        }); 
       }, 
       sopt: ['eq', "ge", "le"], 
       clearSearch: false 
      } 
     }, { 
      name: "DepositDate", 
      index: "DepositDate", 
      width: 126, 
      align: 'center', 
      search: true, 
      sorttype: 'date', 
      formatter: 'date', 
      formatoptions: { 
       newformat: 'm-d-y' 
      }, 
      searchoptions: { 
       dataInit: function(element) { 
        $(element).datepicker({ 
         autoclose: true, 
         format: 'mm-dd-yy', 
         orientation: 'left' 
        }); 
       }, 
       sopt: ['eq', "ge", "le"], 
       clearSearch: false 
      } 
     }, { 
      name: "Systems", 
      index: "Systems", 
      width: 110, 
      align: 'left', 
      searchoptions: { 
       sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'], 
       clearSearch: false 
      } 
     }, { 
      name: "BatchID", 
      index: "BatchID", 
      width: 100, 
      sorttype: 'number', 
      align: 'left', 
      searchoptions: { 
       sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'], 
       clearSearch: false 
      } 
     }, { 
      name: "CheckNumber", 
      index: "CheckNumber", 
      width: 140, 
      align: 'left', 
      searchoptions: { 
       sopt: ['eq', 'ne', 'le', 'lt', 'gt', 'ge'], 
       clearSearch: false 
      } 
     }, { 
      name: "PaymentCode", 
      index: "PaymentCode", 
      width: 175, 
      align: 'left', 
      search: true, 
      searchoptions: { 
       sopt: ['eq', "ge", "le"], 
       clearSearch: false 
      } 
     }, { 
      name: "PaymentAmount", 
      index: "PaymentAmount", 
      width: 160, 
      align: 'right', 
      search: true, 
      searchoptions: { 
       sopt: ['eq', "ge", "le"], 
       clearSearch: false 
      }, 
      formatter: 'currency', 
      formatoptions: { 
       prefix: '$ ', 
       thousandsSeparator: ',', 
       decimalPlaces: 2 
      } 
     }], 
     pager: "#jQGridRawDataPager", 
     rowNum: 20, 
     rowTotal: 2000, 
     rowList: [20, 30, 50], 
     loadonce: true, 
     //rownumbers: true, 
     //add: false, 
     //edit: false, 
     width: '100%', 
     hidegrid: false, 
     viewrecords: true, 
     headertitles: true, 
     responsive: true, 
     styleUI: 'Bootstrap', 
     shrinkToFit: false, 
     forceFit: false, 
     hoverrows: false, 
     //gridview: true, 
     viewsortcols: [false, 'vertical', true], 
     jsonReader: { 
      page: function(obj) { 
       return 1; 
      }, 
      total: function(obj) { 
       return 1; 
      }, 
      records: function(obj) { 
       return obj.d.length; 
      }, 
      root: function(obj) { 
       return obj.d; 
      }, 
      repeatitems: false, 
      id: "0" 
     } 
    }); //grid intiallization code end 

    // Setup buttons 
    jQuery("#jQGridRawData").jqGrid('navGrid', '#jQGridRawDatPager', { 
     edit: false, 
     add: false, 
     del: false, 
     search: true 
    }, { 
     height: 200, 
     reloadAfterSubmit: true 
    }); 

    // Setup filters 
    jQuery("#jQGridRawData").jqGrid('filterToolbar', { 
     defaultSearch: true, 
     stringResult: true, 
     searchOperators: true 
    }); 
}); 
[WebMethod] 
public static List<Dictionary<string, object>> GetRawData() 
{ 
    SqlConnection sqlConnection = new SqlConnection(); 
    sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["abcd"].ConnectionString; 
    sqlConnection.Open(); 
    string sqlStatement = "SELECT * FROM tablename"; 
    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlStatement, sqlConnection); 
    DataTable dtResult = new DataTable(); 
    sqlDataAdapter.Fill(dtResult); 
    System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>(); 
    Dictionary<string, object> row; 
    foreach (DataRow dr in dtResult.Rows) 
    { 
     row = new Dictionary<string, object>(); 
     foreach (DataColumn col in dtResult.Columns) 
     { 
      row.Add(col.ColumnName, dr[col]); 
     } 
     rows.Add(row); 
    } 
    return rows; 
} 
+1

'meine Anforderung ist 150000 Datensätze in jqGrid zu binden, und fügen Sie pagination' ich dringend empfehlen würden Sie tun, um Ihre Paginierung auf dem Server . Beim Dump von 150.000 Datensätzen an den Browser wird nur nach einer schlechten Zeit gefragt. –

+0

Wie kann ich die Paginierung serverseitig mit jqgrid hinzufügen? kannst du mir bitte einen Link schicken –

Antwort

0

1) Wir sollten prüfen, ob unsere maxJsonLength überschreiten oder nicht.

was zu tun ist: zu web.config gehen und fügen Sie den folgenden Code

<system.web.extensions> 
    <scripting> 
     <webServices> 
      <!-- Try increasing this value to a larger value (Int.MaxValue used below) --> 
      <jsonSerialization maxJsonLength="2147483644"></jsonSerialization> 
     </webServices> 
    </scripting> 
</system.web.extensions> 
Verwandte Themen