2011-10-10 1 views
0

ListControl에서 상속 된 사용자 지정 서버 컨트롤을 작성하고 있습니다. 정상적인 태그 "옵션"을 사용하는 대신 사용자 정의 CSS에서 "li"을 사용하여 컨트롤의 렌더링 (Render 메서드 재정의)을 변경할 수 있지만 선택한 데이터를 컨트롤로 다시 보내려면 어떻게해야합니까? ? 자바 스크립트를 사용하여 선택을 구현했습니다. 자바 스크립트를 사용하여 선택된 값을 컨트롤에 보내야한다고 가정합니다. 그러나 어떻게해야할지 모르겠습니다. 누군가 올바른 방법으로 나를 데려 갈 수 있다면, 감사하겠습니다. 사전자바 스크립트로 데이터를 다시 게시하는 사용자 지정 ASP.NET ListControl 구현

답변

1

사용하는 일부 JQuery와 아약스

$.ajax({ 
     type: "GET", 
     url: "process_me.aspx?value=" + $("#id-of-hidden-value-of-list").val(), 
     success: function(){ 
      //success (not finished) 
      alert("woot!") 
      } 
     }); 

에서

덕분에 나는 그 신속하고 더러운 의미한다. Request.QueryString 컬렉션을 사용하여 코드 숨김의 값을 가져옵니다.

대신 렌더링 메서드에서 숨겨진 컨트롤을 구현할 수 있습니다. ASP.NET 팬 boi는 IPostBackEventHandler을 구현했습니다.

일반 html을 숨기고 포스트 백에서 Request.Form 컬렉션을 사용하면 더 간단하게 유지할 수 있습니다.

Response.Write("<input type='hidden' name='list-value'>"); 
.. 

document.forms[0].list-value.value = selectedValue; 
document.forms[0].submit(); 

.. 

if(Request.Form["list-value"]) != "" { // do something } 

와 Ajax에 대한 고도

(즉 아약스 코드가 무엇을하고 있는지이다)를 제출하기 전에 숨겨진 또는 폼의 쿼리 문자열에 선택한 가치있는를 기록 중 일부 JQuery와/자바 스크립트입니다.

+0

안녕하세요. BobTodd. 사용자 지정 서버 컨트롤을 작성하고 "ajax"jquery 메서드를 사용자 지정 컨트롤이 아닌 페이지에만 사용할 수 있기 때문에이 솔루션을 사용할 수 없습니다. –

+0

Render() 메서드에서 Page.ClientScript.RegisterClientScriptBlock()을 사용하여 사용자 정의 컨트롤에서 jquery를 내보낼 수 있습니다. 한 페이지에 여러 개의 사용자 지정 컨트롤이 필요한 경우 숨겨진 컨트롤에 고유 ID가 있어야합니다. –

관련 문제