0

手始めに、iveは「タグ演算子」<%=%>とは何かを検索して答えがなかったので、それを参照します

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()%>'1回だけうまく機能しますが、関数の呼び出しのように1回だけ機能します。どうすればこれを修正できますか?

4

3 に答える 3

1

それがあなたの質問に対する正確な答えではないことは知っていますが、このように(プロパティを使用して)確実に行うことができます

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

そのようにaspxファイルから呼び出すだけではありません

<%= GetPercent %>
于 2012-07-24T09:53:09.133 に答える
0

このようなインラインプロパティを使用することもできます

var randNum= '<%= Percent %>';

public string Percent
{
    get
    {
         return getPercent();
    }
}

または、このようなものを使用できます。

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RandValue", "var randNum= '" + getPercent()+ "';", true);

ここで、randNumは、クライアント側でアクセスするjavascript変数です。

アップデート

あなたがする必要があるのは、javascriptでsetTimeoutを呼び出し、一定の間隔の後にこの関数を呼び出すことです

状況に応じたプログレスバーを作成する方法について、DinoEspitoによるこの例をご覧ください。MVCにありますが、クライアント側のコードは同じです

更新2

ASP.NETを使用してプログレスバー(あなたと同様)を作成するDinoEspitoによるこの記事をもう一度見つけました

于 2012-07-24T10:13:59.540 に答える
0

そのようにしようとしていることをすることはできません。進行状況バーを継続的に更新するには、AJAX/AJAJ を使用する必要があります。

<%=blah()%> は単なる置換です。ページが初めて生成されると、それが評価され、ドキュメントのその部分が評価の結果に置き換えられるだけなので、そこに変数、関数、リソースなどを配置できます。

jQueryを使用しているようですので、 $.ajax() を見てください

于 2012-07-24T09:53:46.660 に答える