2009-09-23 11 views
1

C에서 JS 변수에 액세스하는 방법 #

<div id="blah">500</div> 

(컨텍스트 : asp.net aspx 페이지) 어떻게하면 C# 코드에서 해당 값에 액세스 할 수 있습니까?

<% 
    int numberiwant = ###; // Ideally 500 
%> 

jQuery 라인을 따라 뭔가를 생각하고 있었다 :

<script type="text/javascript"> 
var value = $('#blah').html(); 
// Then do some magic and pass to c#? 
</script> 

더 좋은 방법이 있습니까?

+0

업데이트 : 문제는 blah div의 콘텐츠가 AJAX를 사용하여 채워지므로 콘텐츠에 대해 페이지 전 채우기를 제어 할 수 없다는 것입니다. – Rio

+0

이 경우 서버에이 내용을 보내려면 AJAX가 필요합니다. – Digitalex

+0

질문은 어떻게? – Rio

답변

4

를 사용하여 숨겨진 입력 상자

<input id="hiddenControl" type="hidden" runat="server" /> 

서버 측

protected void btnSubmit_Click(object sender, EventArgs e) { 
    var hiddenValue = hiddenControl.Value; 
} 
+0

Clever. 나는 그것을 좋아한다. –

0

는 좋은 도서관을 찾아 지금까지 클라이언트의 변수 (자바 스크립트)에 직접 액세스 할 수 없습니다

0

서버 측 구현을 시작합니다. 질의 또는 게시를 통해 또는 AJAX를 통해 서버로 보내야합니다.

2

대신 서버 측 div를 사용할 수 있습니다 (예 :

<asp:Panel ID="blah" runat="server">500</asp:Panel> 

그런 다음 서버 측에 액세스 할 수 있습니다. 대안으로;

<div id="blah"><asp:Literal ID="blahContent" runat="server" Text="500" /></div> 

업데이트 : 질문이 명확 해지면이 기능이 작동하지 않는다는 것이 확실합니다. 유일한 해결책은 자바 스크립트를 사용하여 값을 얻은 다음 AJAX를 사용하여 서버에 전송하는 것입니다.

+0

runat = "server"를 div에 직접 추가 할 수도 있습니다. –

+0

페이지를 생성 할 때 div의 내용을 제어 할 수 없습니다. – Rio

1

의 입력 상자 값 자바 스크립트로 입력 상자에

//call this method before you postback, maybe on form submit 
function SetPostbackValues() { 
    var hiddenControl = '<%= hiddenControl.ClientID %>'; 
    document.getElementById(hiddenControl).value = 500; 
    //or some other code to get your value 
} 

액세스하여 값을 넣어 <% .. %> 안에있는 C# 코드는 HTML이 생성 될 때 서버에서 실행됩니다. AJAX를 통해 값이 업데이트되면 C#의 실행이 끝난 후에도 모든 것이 클라이언트에서 발생합니다.

관련 문제