1

この div には、get random 関数を介してサーバーから取得された顧客からの引用が含まれており、数秒ごとに jQuery が実行されて、この引用がフェードアウトし、別の引用が表示されます。

これは、.ascx の Div コードです。

< div class="testimonial" ID="Fader" onload="runTestimonial">

<q>"<asp:Literal runat="server" ID="Quote"></asp:Literal>"</q>

</div>

コード ビハインド (.ascx.cs):

protected void runTestimonial(object sender, EventArgs e)
{ --lots 'o code--

Partnership partnership = Partnership.GetRandomTestimonial(cmPage.CMPageId);
            if (partnership != null)
            {
                Quote.Text = partnership.Testimonial;
                Visible = true;
            }
}

私はこのjQueryコードを使用しています:

setInterval(
    (function () {
        $('#Fader').fadeOut('slow', function () {
            setTimeout(function () { $('#Fader').load().fadeIn('slow'); }, 300);
        });
    })
    , (200))

jquery は問題ないはずです。Div の Fader ID にリンクし、フェードとロードを行います。

もともと div は、同じ構造の Page_Load メソッドを使用して引用符を生成しましたが、これは機能しました。ここでの変更は、Page_Load ではなく jQuery の更新時に、必要なときに呼び出す必要があることです。

これまでのところ、div を更新していますが、空白です (on Page_Load メソッドに戻すと、同じ引用符が出入りします)。ASP ラインに達していないか、実行していません。おそらく、呼び出す方法がわからないため、Page_LoadのようにrunTestimonialをまったく機能させることができません。

C#、jQuery ASP、またはコード ビハインドを実際に行う方法がわかりません。助けてください!

4

2 に答える 2

1

これらは、jQuery と WebMethod を使用して行う必要がある手順です。

runTestimonial()1)関数をWebMethod、文字列 (ランダムな証言) を返すに変更します。したがって、関数のシグネチャは次のようになります。

[WebMethod]
public static string runTestimonial()
{
    return randomTestimonial; //include your code
}

2) ファイルの先頭に jQuery ライブラリを追加します。

<script src="http://code.jquery.com/jquery-latest.js"></script>

3) webmethod への ajax 呼び出しを行う関数を作成します。

function getTestimonial()
{
   $.ajax({
     type: "POST",
     url: "Default.aspx/runTestimonial",
     data: "{}",
     contentType: "application/json; charset=utf-8",
     dataType: "json",
     success: function(msg) {
       $("#Fader").html(msg); //msg contains the response from the server, this appends it to the div
     }
   });
}

4) マークアップの div はサーバー コントロールではないため、onload. したがって、次のようになります。

<div class="testimonial" ID="Fader"></div>

5) これでほぼ完了getTestimonial()です。setInterval 内で関数を呼び出すようにしてください。

この[WebMethod]属性はSystem.Web.Servicesライブラリにあるため、必ずページの上部に含めてください。

using System.Web.Services;

それだけです。うまくいくはずです。

于 2013-08-01T21:41:21.437 に答える
0

簡単に言えば、C# はサーバー側なので、runTestimonialクライアントのブラウザーにはメソッドが存在しません。jQuery を使用して ajax リクエストでサーバーを呼び出す JavaScript 関数を作成する必要があります。jQuery/ajax/ASP.Net のチュートリアルを確認することをお勧めします。基本的なことのいくつかが欠けているようです。それが役立つことを願っています!

于 2013-08-01T20:47:44.290 に答える