サーバー側 (c#) から Javascript の変数にアクセスしようとしています。この変数をサーバー側から public として宣言しました。
public string elementSliderAppend;
以下を使用してJavaScriptでアクセスします。
<%=elementSliderAppend %>
これまでのところ問題はありませんが、aspx ページで更新パネルが更新された後、変数が更新されていないようです。
変数はバックエンドで問題なく変更されますが、Javascript では変更が行われません。更新パネル内に変数へのアクセスを配置したので、更新する必要がありますが、更新されません。
以下はaspxページのコードです
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="10000">
</asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:Asyncpostbacktrigger controlid="Timer1"> </asp:Asyncpostbacktrigger>
</Triggers>
<ContentTemplate>
<div id="flexViewer" class="flexslider">
</div>
<script type="text/javascript">
function getImgHtml() {
return <%=elementSliderAppend %>;
}
</script>
</ContentTemplate>
</asp:UpdatePanel>
以下のコードから変数を呼び出す (aspx ページでも)
function pageLoad(sender, args) {
$("#flexViewer").html("<ul class=slides>" + getImgHtml() + "</ul>");
flexSliderRUN();
}
新しいコード
上記の更新パネル内に以下のコードを挿入しました
<asp:HiddenField ID="hiddimgHtml" runat="server" />
コードビハインドから非表示のフィールド値を設定しています
hiddimgHtml.value= elementSliderAppend;
私のjavascriptファイルで以下を使用して値にアクセスします
var value = $("#hiddimgHtml").val();
alert(value);
$("#flexViewer").html("<ul class=slides>" + value + "</ul>");
ただし、更新時に非常に厄介なエラーが表示されます
POST http://:1562/FridayViewer.aspx 500 (Internal Server Error) ScriptResource.axd?d=xz1-gVxgQeQi9AUxmqDjtx8455SyoL-b2LZdBEiJTo8-XZn2n4ZRBb…NYDXi9xlT_-BAcGHV0ZqGBzbItBzEvsjInrEIWh3G93x0XMte0bSN00lh0&t=6119e399:6073 XHR finished loading: "http://:1562/ FridayViewer.aspx". ScriptResource.axd?d=xz1-gVxgQeQi9AUxmqDjtx8455SyoL-b2LZdBEiJTo8-XZn2n4ZRBb…NYDXi9xlT_-BAcGHV0ZqGBzbItBzEvsjInrEIWh3G93x0XMte0bSN00lh0&t=6119e399:6073 Uncaught Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. サーバーから返されたステータス コードは次のとおりです。