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. 从服务器返回的状态码为:500 ScriptResource.axd?d=xz1-gVxgQeQi9AUxmqDjtx8455SyoL-b2LZdBEiJTo8-XZn2n4ZRBb…RNYDXi9xlT_-BAcGHV0ZqGBzbItBzEvsjInrEIWh3G93x0XMte0bSN00lh0&t=61193:

4

3 回答 3

1

Response.Write<%= %> 是不打算与 AJAX 一起使用的等价物(UpdatePanel 是什么)。如果您需要在 UpdatePanel 中显示某些内容 - 将其分配给控件的属性(它可以是一些标准的 ASP.NET 控件,例如 Label 及其 Text 属性,甚至是具有 runat="server" 及其 innerHTML 属性的 SPAN)

于 2013-08-18T02:35:51.380 回答
1

您也可以使用隐藏字段。

脚步

1) set value of hidden field
2) get the value of hidden field using java script or jQuery
于 2013-08-18T12:03:16.880 回答
0

感谢大家的回答,他们都帮助解决了我使用隐藏控件并从代码后面设置其值的问题

回发错误的原因似乎是分配给导致问题的隐藏字段的字符串长度。为了解决问题,我在回发之前将 javascript 中的值置空

于 2013-08-29T08:26:45.487 回答