如何使用javascript代码调用服务器端函数;标记函数“>

How to call a server side function from javascript code using "tag functions">

本文关键字:函数 gt 何使用 代码 调用 服务器端 javascript      更新时间:2024-01-17

首先,我搜索了什么是"标记运算符"<%%>没有答案,所以我将把它称为

我正在ASP.NET和C#中实现一个进度条,这是用户控件的相关部分:

<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 + "%";
}

witch只能很好地工作一次,然后什么都没有,就像对函数'<%=getPercent()%>'的调用只工作一次一样。我该怎么解决这个问题?

我知道这不是你问题的答案,但你可以这样做(使用属性)

public string GetPercent
    {
        get
        {
            Random random = new Random();
            int randomNumber = random.Next(0, 100);
            return randomNumber + "%";
        }
    }

而不是像那样从aspx文件中调用它

<%= GetPercent %>

您可以使用类似的内联属性

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 构建了一个进度条(类似于您的进度条)

你不能那样做你想做的事情。您需要使用AJAX/AAJ来拥有一个不断更新的进度条。

<%=blah()%>只是一个替换。第一次生成页面时,它会对其进行评估,并将该部分文档替换为评估结果,因此您可以在其中放置变量、函数、资源等。

看起来你在使用jQuery,所以看看$.ajax()