2017-05-13 2 views
0

내가 그것을에게 값을 할당하고

<asp:Label ID="lbldistance" runat="server"></asp:Label> 

을 감안할 때 클릭

var distance = response.rows[0].elements[0].distance.text; 
document.getElementById('<%=lbldistance.ClientID%>').innerHTML=distance; 

내가 텍스트 상자에 lbldistance 값을 할당 할

protected void btnValue_Click(object sender, EventArgs e) 
{ 
    txtJSValue.Text = lbldistance.Text; 
} 

하지만 btnValue를 클릭하면 lbldistance 값이 사라지고 TextBox에 값이 표시되지 않습니다 ..

+0

lbldistance 값은 어디에 설정하고 있습니까? –

+0

HiddenField를 사용하여 값을 저장하고 서버로 되돌립니다. HiddenField는 type = "hidden"으로 html 입력으로 렌더링됩니다 – Kalten

답변

0

레이블로 표시 할 수 없습니까? ASP.NET 상태에서는 다시 게시를 통해 ViewState에 보관됩니다. ASP.NET <asp:Label>span으로 렌더링되고 span에는 ViewState이 없습니다. 따라서 레이블의 innerHTML을 변경하면 실제로 span 태그의 innertHTML이 변경됩니다. 버튼을 누르면 Label이 구성된 서버에 페이지가 게시되고 처음 텍스트로 구성되며 span에 대해 변경된 이후로 생각해야하는 것은 아닙니다.

하는 HTML 라벨이 사용자에게 무언가를 표시해야하며 더이 그래서 사용자에 의해 변경되지하는 것은 아닙니다 :이은 (레이블에 대한 ViewState을 유지하지), 내 생각, 좋은 이유 완료 다시 게시를 통해 상태를 유지합니다. 당신이 원하는 것을 달성하기 위해

, 같은 숨겨진 필드를 사용

<asp:HiddenField ID="HiddenField1" runat="server" /> 

자바 스크립트 :

var distance = response.rows[0].elements[0].distance.text; 
// Assign distance to your label so it shows on the page 
document.getElementById('<%=lbldistance.ClientID%>').innerHTML=distance; 

// Assing distance to hidden field so you can get it on the server side 
document.getElementById('<%=HiddenField1.ClientID%>').value = distance; 
다음

서버 측에서 값을 얻는 방법이다 :

txtJSValue.Text = this.HiddenField1.Value; 

txtJSValue 텍스트 상자의 Text을 변경하기 위해 서버로 이동하는 이유가 확실하지 않습니다. 라벨을 설정하는 것과 마찬가지로 브라우저 측에서 쉽게 설정할 수 있습니다.

document.getElementById('<%=txtJSValue.ClientID%>').value = distance; 
+0

감사합니다. 하지만 버튼을 클릭하면 페이지가 새로 고침되고 라벨 값이 사라졌습니다. –

+0

내 대답을주의 깊게 읽었습니까? 레이블은 서버에 다시 게시를 수행하기 때문에 버튼을 누를 때 서버 측에서 다시 작성됩니다. 따라서 새 텍스트를 원하면 숨겨진 필드에서도 레이블의 텍스트를 설정해야합니다. 이렇게 :'if (Page.IsPostBack) {this.Label1.Text = this.HiddenField1.Value; }'. 당신이 웹 발달을하기 위하여려고하는 경우에 당신이 그것을 이해한다 그래야 포스트 등을 맞댄 기사를 읽고 상태를 전망하게 확인하십시오. – CodingYoshi

+0

이제 나는 해답을 읽고 그 왜 상상을 이해합니다. 제 질문과 제안에 감사드립니다. –

관련 문제