Я использовал следующее: ASP. Net 2008 3.5 Webforms/Teradata Database. Используемый браузер: IE 9, Firefoxjqgrid не загружает все строки
Я могу загрузить до 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
Я не думаю, что это хорошая идея. Ни один пользователь не может просматривать 1 млн. Ячеек. Таким образом, вы хотите отправить клиенту 99,9% ненужных данных. Вам действительно нужна реализация тематической фильтрации данных. Производительность сетки будет в основном зависеть от механизма JavaScript используемого вами веб-браузера. В любом случае, я уверен, что вам нужно реализовать подкачку, сортировку и фильтрацию на стороне сервера. Я думаю, что это действительно необходимо в случае 1 миллиона ячеек данных. – Rakin
Мне жаль, что это мой первый раз, используя этот сайт. – EdwinP