Передача значения из кода в Javascript - PullRequest
2 голосов
/ 14 апреля 2011

Я использую 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";
}

Похоже, он не может получить процентное значение из скрытого поля. Любая помощь будет оценена.

Ответы [ 5 ]

3 голосов
/ 14 апреля 2011

Вам нужно получить обработанный идентификатор вашего скрытого ввода

var pct = document.getElementById("<%=filesPercentage.ClientID%>").value;

, и с того момента, как вы запустите ввод на сервере, лучше использовать asp:HiddenField, а не input

2 голосов
/ 14 апреля 2011

, поскольку ваше скрытое поле является серверным элементом управления, возможно, идентификатор генерируется для чего-то другого, чем filesPercentage (возможно, что-то вроде ctl00_ctl00_filesPercentage)

  • Возможно, вам придется применитьсгенерированный идентификатор клиента для вашего javascript document.getElementById("<%=filesPercentage.ClientID%>").value;
  • Или используйте другой способ выбора скрытого значения, например $('[hidden's parent element] input[type="hidden"]').val()

дополнительно, похоже, что значение индикатора выполненияожидая число, так что вам может понадобиться value: pct * 1 или value: parseInt(pct)

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

1 голос
/ 14 апреля 2011

Попробуйте это

var pct = document.getElementById("<%=filesPercentage.ClientID %>").value;
0 голосов
/ 14 апреля 2011

Это немного чище ИМХО: -)

$("#progressbar").progressbar({
  value: $("#<%=filesPercentage.ClientID%>").val()
});
0 голосов
/ 14 апреля 2011

.net изменит идентификатор, который вы даете элементу управления, чтобы он был уникальным, поэтому вы не получаете доступ к нему с правильным идентификатором.Если вы дадите скрытому полю уникальное имя класса, вы сможете получить доступ к значению следующим образом:

<input type="hidden" runat="server" id="filesPercentage" class="hiddenClass" /> 
var pct = $('.hiddenClass').val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...