我使用了以下內容:ASP .Net 2008 3.5 Webforms/Teradata Database。 使用的瀏覽器:IE 9,火狐jqgrid不加載所有行
我能夠加載多達1700行,但不是整個2000+的記錄。 沒有錯誤返回請幫我解決這個問題。請指教,如果我錯過了任何低於參考和代碼:
<link href="CSS/jquery-ui-1.9.2.custom.css" rel="stylesheet" type="text/css" />
<link href="CSS/ui.jqgrid.css" rel="stylesheet" type="text/css" />
<script src="Script/jquery-1.8.3.js" type="text/javascript"></script>
<script src="Script/jquery-ui-1.9.2.custom.js" type="text/javascript"></script>
<script src="Script/grid.locale-en.js" type="text/javascript"></script>
<script src="Script/jquery.jqGrid.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript" >
$(function() {
$("#dataGrid").jqGrid({
url: 'UploadHistory.aspx/DisplayListToJQGrid',
datatype: 'json',
mtype: 'POST',
serializeGridData: function(postData) {
return JSON.stringify(postData);
},
ajaxGridOptions: { contentType: "application/json; charset=utf-8" },
colNames: ['Liability', 'Channel_Lvl_2_Desc'],
colModel: [
{ name: 'Liability', index: 'Liability', width: 300 },
{ name: 'Channel_Lvl_2_Desc', index: 'Channel_Lvl_2_Desc', width: 200 },
//{ name: 'T_ADDS', index: 'T_ADDS', width: 200 }
],
pager: '#pagingGrid',
rowNum: 10,
rowList: [10, 20, 100],
viewrecords: true,
gridview: true,
width: 780,
rownumbers: true,
loadonce: 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"
},
caption: 'Data List'
});
});
</script>
<WebMethod()> _
Public Shared Function DisplayListToJQGrid() As List(Of Dictionary(Of String, Object))
Return UploadClass.LoadListToJQGrid()
End Function
<WebMethod()> _
Public Shared Function LoadListToJQGrid() As List(Of Dictionary(Of String, Object))
Dim cmdQry As String = ""
cmdQry = "SELECT TOP 1970 Liability, Channel_Lvl_2_Desc FROM TABLENAME"
Return DataAccessClass.GetListFromDB(cmdQry)
End Function
<WebMethod()> _
Public Shared Function GetListFromDB(ByVal Sql As String) As List(Of Dictionary(Of String, Object))
Dim dt As New DataTable
Dim cmd As New Teradata.Client.Provider.TdCommand(Sql, DBConnectionClass.pTDConobj)
Dim da As New TdDataAdapter(cmd)
da.Fill(dt)
'Dim serializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer
Dim rows As New List(Of Dictionary(Of String, Object))()
Dim row As Dictionary(Of String, Object) = Nothing
For Each dr As DataRow In dt.Rows
row = New Dictionary(Of String, Object)()
For Each col As DataColumn In dt.Columns
row.Add(col.ColumnName.Trim(), dr(col).ToString())
Next
rows.Add(row)
Next
Dim serializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer()
serializer.Serialize(rows)
Return rows
End Function
你能讓javascript易讀嗎? – Rakin
我不認爲這是個好主意。沒有用戶能夠查看100萬個細胞。所以你想發送99,9%不需要的數據給客戶端。您真正需要的是實現數據的面向主題的過濾。網格的性能將主要取決於您使用的Web瀏覽器的JavaScript引擎。無論如何,我相信你必須在服務器端實現分頁,排序和過濾。我認爲在100萬個數據單元的情況下它確實是必需的。 – Rakin
很抱歉,這是我第一次使用本網站。 – EdwinP