2009-11-20 4 views
0

코드 숨김을 통해 업데이트 패널에서 값 (서버 컨트롤)을 설정 했으므로 이러한 값을 설정하려면 일부 javascript 메서드를 사용해야합니다. 애프터jquery에서 asp.net ajax updatepanel에 설정된 값에 액세스하는 방법

protected void Button1_Click(object sender, EventArgs e) 
{ 
    this.Label1.Text = "Hello, world"; 
} 

:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
<ContentTemplate> 

<asp:Button ID="Button1" runat="server" Text="Set Label From Ajax" onclick="Button1_Click" /> 
<asp:Label ID="Label1" runat="server" Text=""></asp:Label> 


</ContentTemplate> 
</asp:UpdatePanel> 

코드 뒤에 :이 후 JQuery와 통해 액세스하려고하면, 그것은 asp.net 아약스

asp.net에 의해 설정된 아무 것도 인식하지 못합니다 버튼을 클릭하고 Label1은 "Hello, world"입니다. 다음은 HTML 컨트롤을 올바르게 가져 오지만 텍스트는 emtpy입니다.

jQuery :

var text = $("[id$='Label1']").text(); 
// text = ""; should be "Hello, World" 

답변

0
<script type=”text/javascript”> 

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_pageLoaded(panelLoaded); 

function panelLoaded(sender, args){ 

    var text = $("label[id*='Label1']").text(); 

} 

</script> 

이의 PageRequestManager 인스턴스의 이벤트 핸들러에 액세스 pageLoaded 이벤트에 함수를 추가하고 함수를 호출 - JQuery와 ASP.NET의 아무것도 알고 있다는 사실을 양지해야합니다 업데이트 패널로드가 완료되면 ajax를 사용하기 때문에 jquery 코드는 값이 설정되기 전에 페이지의 첫 번째로드에서만 실행됩니다. 그러면 UpdatePanel이로드되고 Label1에 실제로 텍스트가있는 텍스트가 지정됩니다.

0

실제로 어떤 HTML이 브라우저로 전송되는지 확인 했습니까? (물론 자바 스크립트) 단지 HTML

관련 문제