2014-06-11 6 views
3

웹 양식에서 데이터를 가져 와서 button_click에 자바 스크립트를 사용하여 객체에 넣었습니다. 그런 다음 AjaxJSON을 사용하여 개체를 내 C# 코드의 메서드에 전달하려고했습니다.C#으로 자바 스크립트 객체 전달하기

자바 스크립트 :

$(document).ready(function() { 
    $("#go").click(function() { 
     $('#<%=gv_Rota.ClientID%>') 
      .find('tr') 
      .each(function (row) { 
       $(this).find('select') 
        .each(function (col) { 
         $ctl = $(this) 
         if ($ctl.is('select')) { 
          var shift = $ctl.val(); 
          var day = row; 
          var wk = col + 1; 
          var objectitem = { ShiftId: shift, Day: day, Week: wk }; 
          $.ajax({ 
           url: '/Administration.aspx/StoreObject', 
           type: 'POST', 
           contentType: 'application/json', 
           data: JSON.stringify({ myObject: objectitem }) 
          }); 
         } 
        }); 
       }); 
      }); 
     }); 

C 번호 뒤에 : 자바 스크립트에서

[WebMethod] 
public static void StoreObject(string[] myObject) 
{ 

} 

, 당신은 그것의 GridView 주위에 루프와의 GridView 내부 DropDownLists에서 selectedvalues를 찾아 볼 수 있습니다. 따라서 Javascript는 여러 번 실행됩니다. 즉, 여러 개의 objectd가 전달됩니다.

예를 들어 DataTable 행에 C#으로 전달 된 모든 개체를 저장하는 방법은 '저장'단추를 누를 때 사용할 수 있습니다. 첫째, 나는 StoreArray 메서드에 무엇이 들어 있는지 잘 모르겠다. 두 번째로, DataTable을 유지하는 가장 좋은 방법이 무엇인지 모르겠다. '저장'버튼과 PostBack으로, 이것으로 인해 재설정 될 것이라고 확신합니까?

+0

js –

+0

@EhsanSajjad Question 편집 된 객체가 아닙니다. 수정 해줘서 고마워. – EliotE123

+0

아직 배열 객체가 아닙니다 –

답변

4

당신이 자바 스크립트에서이 같은

뭔가가 객체 반영 C#에서 클래스 만들기 :

public class Item 
    { 
     public string Id { get; set; } 
     public string Day { get; set; } 
     public string Week { get; set; } 
    } 

는 그런 기대를 그와 같이 입력

[WebMethod] 
public static void StoreObject(Item myObject) 
{ 

} 

편집 :

컬렉션에 항목을 저장하려면 목록을 만들 수 있습니다. 다음과 같이 ms :

private List<Item> myList = new List<Item>(); 

[WebMethod] 
public void StoreObject(Item myObject) 
{ 
    myList.Add(myObject); 
} 

NB :이 기능은 정적 일 수 없습니다. WebMethod가 정적 메서드를 지원하는지 확실하지 않습니다. 그렇지 않다면 메소드를 호스트하기 위해 asmx 페이지를 만들어야합니다. See here

+0

답변 해 주셔서 감사합니다. 그리고 나서 Item이 내 객체 중 하나에 의해 채워지면 CollectionObject에 저장하기 위해 StoreObject 메소드 내에서 무엇을 할 수 있습니까? 그런 다음 PostBack을 검색 할 때 null로 재설정되지 않도록 컬렉션을 저장할 수 있습니다. – EliotE123

+0

지금은 '저장'버튼을 누를 때까지 메모리 내 컬렉션에 저장해야합니다. 저장 버튼을 클릭하면 웹 서비스에 전달됩니다. 따라서 나중에 저장 버튼을 누르면 PostBack을 삭제할 때 수집되지 않는 컬렉션에 저장할 수 있어야합니다. – EliotE123

+0

나는 이것으로 일할 수 있고 그것이 필요한 방식으로 작동하도록 할 수있다. 답변 감사합니다. – EliotE123

관련 문제