Я работаю над этим прямо сейчас. Я использую веб-приложение ASP.Net MVC 2, используя религиозные таблицы данных, и вам нужно показать более 1000 записей в каждой таблице. Обработка на стороне сервера - это путь для меня. Вот что мы имеем.
Вот наша декларация в представлении (/ Admin/Unassigned).
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#adminUnassignedTable').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "/Admin/UnassignedTable"
});
});
</script>
Вот наша функция контроллера (/ Admin/UnassignedTable).
public void UnassignedTable()
{
statusID = (int)PTA.Helpers.Constants.Queue;
locationID = (int)PTA.Helpers.Constants.Reviewer;
_AdminList = PTA.Models.IPBRepository.GetIPBsByStatus(Convert.ToInt32(statusID), Convert.ToInt32(locationID)); //_AdminList is an IEnumerable<IPB>, IPB being our class
IEnumerable<IPB> _NewList;
int nDisplayStart = Convert.ToInt32(HttpContext.Request.QueryString.Get("iDisplayStart");
int nDisplayLength = Convert.ToInt32(HttpContext.Request.QueryString.Get("iDisplayLength");
_NewList = _AdminList.Skip<IPB>(nDisplayStart).Take<IPB>(nDisplayLength).ToList<IPB>();
string strOutput = "{";
strOutput += "\"sEcho\":" + HttpContext.Request.QueryString.Get("sEcho") + ", ";
strOutput += "\"iTotalRecords\":" + _AdminList.Count().ToString() + ", ";
strOutput += "\"iTotalDisplayRecords\":" + _AdminList.Count().ToString() + ", ";
strOutput += "\"aaData\":[";
foreach (IPB ipb in _NewList)
{
strOutput += "[ ";
strOutput += "\"" + ipb.IPBName + "\",";
strOutput += "\"" + ipb.PubDate + "\",";
strOutput += "\"" + ipb.Change + "\",";
strOutput += "\"" + ipb.ChangeDate + "\",";
strOutput += "\"" + ipb.TotalParts + "\",";
strOutput += "\"" + ipb.TotalPartsReports + "\",";
strOutput += "\"" + ipb.ALC + "\",";
strOutput += "\"" + ipb.DateAdded + "\",";
strOutput += "\"" + "" + "\","; //Need to add drop down control, that's why it's blank.
strOutput += "\"" + "" + "\","; //Need to add drop down control, that's why it's blank.
strOutput += "\"" + "" + "\","; //Need to add drop down control, that's why it's blank.
strOutput += "\"" + "" + "\""; //Need to add drop down control, that's why it's blank.
strOutput += "]";
if (ipb != _NewList.Last())
{
strOutput += ", ";
}
}
strOutput += "]}";
Response.Write(strOutput);
}
ПРИМЕЧАНИЕ !!!!!!! При добавлении элемента управления вы должны указывать свои котировки для своих значений управления как \\ ", потому что обратная косая черта должна быть в данных JSON.
Надеюсь, в контроллере вы можете получить доступ к вашему веб-сервису. с веб-программирования, так что я не знаю, что вам нужно сделать. Я просто подумал, что это поможет.
спасибо, но нет - я не использую PHP. Это приложение asp.net. Я также использую веб-службы asp.net для получения данных. Итак, что бы я хотел сделать, это доступ к веб-службе asp.net непосредственно в процедуре инициализации DataTables. Не серверная страница (например, .php или .aspx), а веб-служба. Я еще не пробовал это, и мне просто интересно, является ли это принятой практикой или нет; или это даже возможно ... – sarsnake
Я думаю, вы двое не понимаете друг друга :) @gnomixa не хочет передавать какие-либо дополнительные данные на сервер. @Reigel не настаивал на PHP, это было только для примера. –
Я думаю, это возможно ... Ну, я не хозяин asp.net, но я думаю, вам нужно только передать json на datatables.net, и у вас не будет проблем с этим. Я думаю. – Reigel