2012-01-25 5 views
0

정상적인 지 궁금합니다. jQuery를 사용하여 select에 옵션을 추가합니다. asp 버튼을 사용하여 저장하면 click 이벤트에서 서버 측의 변경 사항을 볼 수 없습니다.서버 쪽에서 클라이언트 쪽에서 변경된 부분이 보이지 않습니다.

그리고 옵션을 추가하면 HTML이 모두 올바른 것입니다.

코딩 문제입니까 아니면 이해가되지 않습니까? : P

$(selectCourant) 
      .append($("<option></option>") 
      .attr("value",$(dropdown).val()) 
      .text($(dropdown + " option:selected").text())); 

당신에게

답변

4

예 당신이 뭔가를 이해하지 못했다

ASP.NET과 vb.net 감사드립니다.

클라이언트 웹 브라우저에서 어떤 일이 발생하는지는 서버에 알리지 않습니다. 추가 코드를 작성하여 프로그래밍 방식으로 처리하는 경우는 예외입니다.

서버 측에서는 dom (html struct)을 읽었으며, 그것을 원한다고해도 읽을 수는 없습니다.

해결 방안은 게시 값으로 다시 전송하는 것입니다. 예를 들어, 옵션을 추가 할 때 숨겨진 입력에 다른 값을 추가하고 서버 측에 조치를 다시 게시하십시오. 그런 다음 책임감있게이 값을 읽고이를 이해하고 코드의 데이터를 업데이트하십시오.

코드 숨김은 클라이언트에서 무슨 일이 일어날 지 모를뿐만 아니라 무엇이 똑같은지 알지 못합니다. 페이지가 전송되고 포스트 백으로 돌아온 후 여기에 viewstate가옵니다. Codebehind는 변경 사항을 기억하기 위해 대부분의 정보를 viewstate에 저장합니다 (컨트롤이나 페이지에서 해당 정보를 비활성화 한 경우 제외). 그런 다음 poststate는 코드 배후로 보내고 코드는 디코드하고 포스트 이전에 무엇을했는지를 안다.

몇 마디 더 말하기. html 페이지를 준비하고 "렌더링"하면 모든 HTML 구조체를 브라우저 클라이언트에 보내고 브라우저에서 페이지를 렌더링합니다. 브라우저가 서버에 포스트를 만들 때 포스트 백 변수의 whats 만 전송하므로 서버는 돌아 오는 정보만을 알고이 정보를 사용하여 새로운 html 구조체를 재생합니다.

+0

감사합니다. 훌륭한 설명! – Marc

관련 문제