WebMethods에서 GridView를 반환하지 마십시오. jQuery를 사용하여 클라이언트 측에서 데이터를 반환하고 바인드해야한다.
GridView를 완전히 교체하려는 경우 표 형식으로 데이터를 표시하기 위해 일종의 jQuery 플러그인을 사용하는 것이 좋습니다. jQGrid 또는 datatables (내 마음에 드는 것)을 들여다 볼 수 있습니다. 웹 메서드는 Json 형식의 데이터 만 반환 할 수 있습니다. 같은 뭔가 : datatables의 특정 경우
[WebMethod]
public List<CustomObject> GetData(string param1, string param2)
{
//return data here
}
, 당신은 준수해야 an interface있다. 당신이 datatables를 사용하도록 선택하는 경우
가
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
}
반환해야합니다 : 그것은 내 C# 버전에 다음과 같을 것이 같은 :
$(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
나는 jquery가 그것이 당신이 생각하는 것을 의미한다고 생각하지 않는다. 특히 그리드 예제는 jquery 템플릿을 사용하여 구현하기가 매우 쉽습니다. – R0MANARMY