Вы не должны возвращать GridViews из WebMethods.Вы должны вернуть данные и связать их на стороне клиента с помощью jQuery.
Если вы хотите полностью заменить GridView, я рекомендую вам использовать какой-нибудь плагин jQuery для отображения данных в табличной форме.Вы можете посмотреть jQGrid или datatables (мой любимый).Ваш веб-метод может вернуть только данные в формате Json.Что-то вроде:
[WebMethod]
public List<CustomObject> GetData(string param1, string param2)
{
//return data here
}
В конкретном случае таблиц данных есть интерфейс , который вы должны придерживаться.В моей версии C # это будет выглядеть примерно так:
public class ResponseData
{
#region properties
public int iTotalRecords { get; set; } //used by datatables to build the pager
public int iTotalDisplayRecords { get; set; } //used by datatables to build the pager
public string sEcho { get; set; }
public string sColumns { get;set; } //optional
public List<CustomObject> aaData { get; set; } //your actual business objects
#endregion
}
Так что ваш веб-метод, если вы решите использовать таблицы данных, должен вернуть ResponseData
[WebMethod]
public ResponseData GetData(string param1, string param2)
{
//return ResponseData
}
Вы бы связалиданные на стороне клиента делают что-то вроде это:
$(document).ready(function() {
var oTableSummary = $("#tbl").dataTable({
"bJQueryUI": true,
"bPaginate": false,
"sPaginationType": "full_numbers",
"bServerSide": true,
"bProcessing": true,
"iDisplayLength": 50,
"bFilter": false,
"bSortClasses": false,
"bDeferRender": false,
"oLanguage": { "sSearch": "Search all columns:" },
"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
"sAjaxSource": "WebService.asmx/GetData",
"fnServerData": function(sSource, aoData, fnCallback) {
$.ajax({
"type": "POST",
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"url": sSource,
"data": "{'param1': 'param1" , 'param2': 'param2' }",
"success": function(result) {
fnCallback(result); // draw the table
}
});
}
});
});
PS: вам придется потратить немало времени на изучение этого материала, но если вы освоите его, вы не захотите идтивернуться к использованию серверных элементов управления.: D