2014-03-28 1 views
0

나는 Javascript가 좋지 않다고 고백해야합니다.Javascript 함수는 datatables.net 열 순서에 대한 정수 배열을 얻기 위해 C# 메서드를 호출합니다.

datatables.net 을 사용하여 테이블을 생성합니다. 데이터 테이블은 (C#의) 데이터베이스를 호출하여 값을 가져 오는 제네릭 처리기에 대한 호출을 사용하여 채워집니다. 이것은 작동 중입니다. 내가하고 싶은 것은 열 순서 바꾸기 기능을 사용하는 것입니다. 순서 설정은 정수 배열을 사용합니다. 그 값을 데이터베이스에 저장하고 사용하도록 지정하고 싶습니다. 나는 "get"프로세스를 먼저 수행하고자 할 때 저축 열 순서 부분에 대해 생각하지 않았습니다.

<script> 
    $(function() { 

     var columnOrder = [4, 3, 2, 1, 0, 5]; 

     $("#<%=DT.ClientID%>").dataTable({ 
      dom: 'Rlfrtip', 
      colReorder: { 
       order: columnOrder 
      }, 
      "bProcessing": true, 
      "bServerSide": true, 
      "bFilter": false, //Hide the search box 
      "sPaginationType": "full_numbers", 
      "sAjaxSource": "../DataHandler/Data.ashx", 

그래서 내가하고 싶은 무엇 "columnOrder"을 채울 수 있습니다 : 일반 세상에서

는 열 다시 순서를 설정하는 코드 좋아 functionlity datatables로 코딩입니다 데이터베이스의 값으로 나는 webmethod를 사용하여 $ .ajax ({+ Post.)에 의해 그 값을 얻으려고 시도했다. 이것은 default.aspx에서 내 C# 코드 숨김 메소드로 갔지만 빈 객체를 반환했다. 또한 데이터 테이블을 먼저 채우기 전에 webmethod 그래서 전화의 타이밍도 정확하지 않습니다.

질문 : 나는 이것을 과도하게 복잡하면 내 머리를 긁적니다. 내가 원하는 건 정수 배열을 반환합니다 # 서버 쪽 메서드를 자바 스크립트 변수로 변환 한 다음이 변수를 사용하여 열의 순서를 설정하십시오. 정수 배열을 C#에서 변수로 가져올 수있는 방법에 대한 제안은 기본적으로 시작해야합니다. 감사합니다!

답변

0

내가 원한다면 C# 서버 측 메소드에서 자바 스크립트 변수로 정수의 배열을 반환해야한다.

나는 정수 배열을 반환하지만 실제로는 배열이 아니라 자바 스크립트 에서처럼 작동합니다.

방법은 방법은 정수의 목록을 반환

[WebMethod] 
    public static List<int> getAdd_Zip(int ZIP_ID) 
    { 
     try 
     { 
      BusinessContacts objContacts = new BusinessContacts(); 
      DataTable dtInf = objContacts.getAdd_Zip(ZIP_ID); 
      List<int> lRes = new List<int>(); 

      if (dtInf.Rows.Count > 0) 
      { 
       lRes.Add(Convert.ToInt32(dtInf.Rows[0]["COU_ID"])); 
       lRes.Add(Convert.ToInt32(dtInf.Rows[0]["STE_ID"])); 
       lRes.Add(Convert.ToInt32(dtInf.Rows[0]["MUN_ID"])); 
      } 

      return lRes; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

주 이하, I (이 중요하지 않은) 다른 방법으로 데이터 테이블, 그럼 내가 채우 테이블을 선언이며, 다음, 나는 목록을 채우기 3 개의 값이 있습니다.

그래서 지금은

function wsGetAdd_Zip(ZIP_ID) { 
var AddZips = new Array(); 
var params = new Object(); 
params.ZIP_ID = ZIP_ID; 
params = JSON.stringify(params); 
$.ajax({ 
    type: "POST", 
    url: "Contactos.aspx/getAdd_Zip", 
    data: params, 
    contentType: "application/json; charset=utf-8", 
    async: false, 
    success: function (result) { 
     AddZips = result.d; 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     alert(textStatus + ": " + XMLHttpRequest.responseText); 
    } 
}); 

return AddZips; 
} 

이 방법은 정수의 배열을 반환하도록 자바 스크립트에 다음 방법이있다.

이 정보가 도움이되기를 바랍니다.

+0

안녕하세요, 귀하의 도움에 감사드립니다. 코드가 의미가 있습니다. 나는 당신의 코드를 지침으로 사용하여 비슷한 것을 시도했다. 내가 지금 얻을 오류 : "배열의 deserialization에 대해 지원되지 않습니다." 나는 이것을 알아 내기 위해 자바 기본으로 돌아갈 필요가 있다고 생각한다. 반면에 . 내가 C# 코드에서 필요한 모든 값을 얻은 다음 해당 페이지에서 공용 변수를 사용하고 자바 스크립트에서 호출하면 오류가 발생합니까? 그게 효과가있을 것입니다. 그게 모범 사례인지 아닌지는 잘 모르겠습니다. 덕분에 다시 . –

+0

내가 준 코드를 사용 했습니까? json2.js를 가져와야 할 경우 JSON으로 인해 오류가 발생했습니다 (필자는 추측합니다). Remmember는 어디에서 다운로드 했습니까? Google에서 검색 할 수 있습니다. – razielx4crazy

관련 문제