一尘不染

将值从代码隐藏传递给Javascript

ajax

我正在使用jQueryUI ProgressBar向用户显示他们已使用了多少允许的文件存储。百分比是在后台代码中计算的,应该传递给Javascript。

Aspx代码

    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
        <script type="text/javascript">
            $(function () {
                var pct = document.getElementById("filesPercentage").value;
                $("#progressbar").progressbar({
                    value: pct
                });
            });
        </script>
    </asp:Content>

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
      ...
     <input type="hidden" runat="server" id="filesPercentage" />                      
     <div id="progressbar"></div>         
      ...
    </asp:Content>

背后的代码

protected void Page_Load(object sender, EventArgs e)
{
   filesPercentage.Value = "85";
}

似乎无法从隐藏字段中获取百分比数字。任何帮助,将不胜感激。


阅读 251

收藏
2020-07-26

共1个答案

一尘不染

由于您的隐藏字段是服务器控件,因此可能是ID生成的不是filesPercentage(可能类似于ctl00_ctl00_filesPercentage

  • 您可能需要将生成的客户端ID应用于javascript document.getElementById("<%=filesPercentage.ClientID%>").value;
  • 或使用另一种选择隐藏值的方法,例如 $('[hidden's parent element] input[type="hidden"]').val()

此外,它看起来像进度值期待一个数字,所以你可能需要做value: pct * 1value: parseInt(pct)

http://jsfiddle.net/pxfunc/QyZSs/

2020-07-26