PreRender에서 값이 할당 된 서버 측 변수가 있습니다. 간단하게하기 위해 들어, 내가이 일을하고있어 가정 해 봅시다 : 내 마크 업에서ASP.NET UpdatePanel - 인라인 변수
protected string test;
protected void Page_PreRender(object sender, EventArgs e)
{
test = Guid.NewGuid().ToString();
}
변수는 다음과 같이, UpdatePanel 내에서라고합니다 :
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Perform postback" />
<script type="text/javascript">
Sys.Application.add_load(function() {
alert('<%=test%>');
});
</script>
</ContentTemplate>
</asp:UpdatePanel>
을의 첫 번째로드에 페이지에서 자바 스크립트 경고 기능을 사용하면 예상대로 임의의 값을 얻을 수 있습니다. 그러나 이후의 모든 포스트 백에서 Guid의 원래 값은 그대로 유지됩니다.
아무도 이것이 왜 그렇게 설명하고 해결책을 제시 할 수 있습니까? 예를 들어, 숨겨진 필드에 'test'값을 넣어 필요한 동작을 얻을 수 있다고 확신하지만 이상적으로는 그 깊이로 가라 앉지 않아도됩니다. 불행히도 UpdatePanel을 좀 더 가벼운 것으로 대체하는 것은 실제로 옵션이 아닙니다.