2

サーバー側 (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. サーバーから返されたステータス コードは次のとおりです。

4

3 に答える 3

1

<%= %> は、Response.WriteAJAX (UpdatePanel とは何か) で動作することを意図していないものと同等です。UpdatePanel に何かを表示する必要がある場合は、コントロールのプロパティに割り当てます (Label のような標準の ASP.NET コントロールとその Text プロパティ、または runat="server" とその innerHTML プロパティを持つ SPAN の場合もあります)。

于 2013-08-18T02:35:51.380 に答える
0

みんなの答えに感謝します。彼らはすべて問題を解決するのに役立ちます

ポストバックのエラーの理由は、問題の原因となった非表示フィールドに割り当てられた文字列の長さのようです。解決するには、ポストバックの前に JavaScript の値を空白にしました

于 2013-08-29T08:26:45.487 に答える