对于初学者,我已经搜索了什么是“标记运算符”<%=%>没有回答,所以我会以那样的方式引用它
我在ASP.NET和C#中实现progress bar,这是用户控件的相关部分:
<div class="progress_container" >
<div class="progress_bar tip" id="ProgressBar" title="78%"></div>
</div>
<script type="text/javascript">
function myFunction() {
document.getElementById("ProgressBar").setAttribute("title", '<%=getPercent()%>')
var percent = $('.progress_bar').attr('title');
$('.progress_bar').animate({ width: percent }, 1000);
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnProgressBar" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Button runat="server" Text="Go!" id="btnProgressBar" OnClientClick="myFunction()" />
</ContentTemplate>
</asp:UpdatePanel>
这是代码隐藏的功能:
public string getPercent()
{
Random random = new Random();
int randomNumber = random.Next(0, 100);
return randomNumber + "%";
}
女巫设法很好地工作了一次,然后什么都没有,就像对函数'<%=getPercent()%>'
的调用一样。我该如何解决这个问题?
答案 0 :(得分:1)
我知道这不是你问题的答案,但你可以这样做(使用属性)肯定
public string GetPercent
{
get
{
Random random = new Random();
int randomNumber = random.Next(0, 100);
return randomNumber + "%";
}
}
而不仅仅是从aspx文件中调用它
<%= GetPercent %>
答案 1 :(得分:0)
你不能做那样的尝试。您需要使用AJAX / AJAJ来持续更新进度条。
&LT;%=等等()%&GT;只是一个替代品。第一次生成页面时,它会对其进行求值,然后用评估结果替换文档的那一部分,这样就可以在其中放置变量,函数,资源等。
看起来你正在使用jQuery,所以看看$ .ajax()
答案 2 :(得分:0)
你可以使用像这样的内联属性
var randNum= '<%= Percent %>';
public string Percent
{
get
{
return getPercent();
}
}
或者你可以使用这样的东西。
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RandValue", "var randNum= '" + getPercent()+ "';", true);
其中randNum是您希望在客户端访问的javascript变量
击><强>更新强>
您需要做的是在javascript中调用setTimeout并在一段时间后调用此函数
您可以通过Dino Espito查看此示例,了解如何构建上下文相关的进度条。虽然它在MVC中,但客户端代码是相同的
更新2
再次发现这篇文章Dino Espito,他使用ASP.NET构建了一个进度条(类似于你的)