我正在使用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";
}
好像无法从隐藏字段中获取百分比数字。任何帮助将不胜感激。
答案 0 :(得分:3)
您需要获取隐藏输入的呈现ID
var pct = document.getElementById("<%=filesPercentage.ClientID%>").value;
从您在服务器上运行输入的那一刻起,最好使用asp:HiddenField
而不是input
答案 1 :(得分:2)
由于您的隐藏字段是服务器控件,因此可能会将ID生成为filesPercentage
之外的其他内容(可能类似于ctl00_ctl00_filesPercentage
)
document.getElementById("<%=filesPercentage.ClientID%>").value;
$('[hidden's parent element] input[type="hidden"]').val()
此外,看起来进度条值预计会有一个数字,因此您可能需要执行value: pct * 1
或value: parseInt(pct)
答案 2 :(得分:1)
试试这个
var pct = document.getElementById("<%=filesPercentage.ClientID %>").value;
答案 3 :(得分:0)
.net将修改您提供控件的ID以确保它是唯一的,因此您不会使用正确的ID访问它。如果为隐藏字段指定唯一的类名,则可以通过以下方式访问该值:
<input type="hidden" runat="server" id="filesPercentage" class="hiddenClass" />
var pct = $('.hiddenClass').val();
答案 4 :(得分:0)
这有点清洁恕我直言: - )
$("#progressbar").progressbar({
value: $("#<%=filesPercentage.ClientID%>").val()
});