2009-09-23 2 views
3

jQuery를 통해 양식을 제출하고 특정 서버 측 이벤트를 발생 시키려고합니다.jQuery에서 서버 측 이벤트 발사 - __EVENTARGUMENT가 존재하지 않습니다.

클라이언트 측 코드 :

$("input[name=__EVENTARGUMENT]").val("SomeArg"); 
form = $("body form"); 
form.submit(); 

서버 측 코드 :

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Page.IsPostBack) 
     { 
      if (Request["__EVENTARGUMENT"] == "SomeArg") 
      { 
       //do some stuff 
      } 
     } 
    } 

문제는은 "__EVENTARGUMENT"숨겨진 입력이 존재하지 않습니다. autopostback = true 인 ASP.net 서버 컨트롤 드롭 다운 목록을 추가하면 EVENTARGUMENT 숨겨진 입력이 만들어 짐을 발견했습니다. ASP.net에서 이러한 숨겨진 입력을 생성하고 페이지에서 실제로 필요하지 않은 컨트롤을 추가하지 않고도 서버 측에서 가치를 얻을 수있는 더 명확한 방법이 있습니까?

답변

2

페이지

에 asp.net HiddenField control 추가 그러나이 컨트롤 ID를 얻을 수 있습니다 문제가있는 것, as.net가 자동으로 생성하는, 당신은 숨겨진 필드 등의 ClientID 속성을 사용하여이 문제를 해결할 수 있습니다 this article mentions

+0

'test'HiddenField 컨트롤을 페이지에 추가했습니다. EVENTARGUMENT 숨김 필드가 자동 생성되지 않았습니다. 그 자바 스크립트/페이지로드 코드는 실제로 사용자 정의 컨트롤에 있기 때문에 그 이름을 가진 하나를 만드는 것에 대해서는 조심 스럽습니다. 사용자 정의 컨트롤은 자동 생성 된 EVENTARGUMENT 숨김 필드가있는 페이지 나 해당 컨트롤이 자동 생성되지 않은 페이지에 배치 될 수 있습니다. – KClough

+0

왜이 특별한 EVENTARGEMENT가 필요한가요? –

+0

AH! 모든 명명 된 입력 필드가 Request 개체를 통해 액세스 할 수 있다는 것을 알지 못했습니다. 감사! – KClough

관련 문제