C# 如何使用";从javascript代码调用服务器端函数;标签功能“&燃气轮机;
首先,我搜索了什么是“标记运算符”,没有找到答案,所以我将引用它 我正在ASP.NET和C#中实现,这是用户控件的相关部分:C# 如何使用";从javascript代码调用服务器端函数;标签功能“&燃气轮机;,c#,javascript,asp.net,.net,ajax,C#,Javascript,Asp.net,.net,Ajax,首先,我搜索了什么是“标记运算符”,没有找到答案,所以我将引用它 我正在ASP.NET和C#中实现,这是用户控件的相关部分: <div class="progress_container" > <div class="progress_bar tip" id="ProgressBar" title="78%"></div> </div> <script type="text/javascript">
<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>
witch只运行了一次,然后什么都没有,就像调用函数
'
只运行了一次。我如何解决这个问题?我知道这不完全是你问题的答案,但你肯定可以这样做(使用属性)
而不是像这样从aspx文件调用它
<%= GetPercent %>
你不能那样做你想做的事。您需要使用AJAX/AJAJ来拥有一个不断更新的进度条 这只是一种替代。第一次生成页面时,它会对其进行求值,并用求值结果替换文档的该部分,因此您可以在其中放置变量、函数、资源等 看起来您正在使用jQuery,所以请看一下$.ajax()您可以使用如下内联属性
var randNum= '<%= Percent %>';
public string Percent
{
get
{
return getPercent();
}
}
其中,randNum是您希望在客户端访问的javascript变量
更新
您需要做的是在javascript中调用setTimeout,并在一段时间后调用此函数
您可以通过如何构建上下文相关的进度条来了解这个示例。虽然它在MVC中,但客户端代码是相同的
更新2
在这篇文章中,他使用ASP.NET构建了一个进度条(类似于你的进度条)我想你误解了这个问题-这更像是OP没有意识到只有在服务器上渲染时才会调用
,而不会在浏览器上再次调用,首先,我对这个标签的理解是有缺陷的,它只是一个替代品,但是你尽了最大的努力给出了一个有效的解决方案,所以我认为你应该得到公认的答案。谢谢
<%= GetPercent %>
var randNum= '<%= Percent %>';
public string Percent
{
get
{
return getPercent();
}
}
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RandValue", "var randNum= '" + getPercent()+ "';", true);