2012-03-02 6 views
0

私はajaxtoolkit:Ratingを使用しています。変更されたイベントのASPラベルに値を書き込もうとしていて、動作させることができない場合を除き、すべて正常に動作します。ここでは、コードの関連する行です:私は何をしようとしているaspを更新する方法:AJAXコールバック後のラベル

page.aspx

<asp:LoginView ID="LoginView1" runat="server"> 
<LoggedInTemplate> 
    <td> 
     <ajaxtoolkit:Rating ID="YourRating" runat="server" BehaviorID="RatingBehavior1" CurrentRating="0" 
      MaxRating="10" StarCssClass="ratingStar" WaitingStarCssClass="savedRatingStar" 
      ReadOnly="false" FilledStarCssClass="filledRatingStar" EmptyStarCssClass="emptyRatingStar" 
      OnChanged="YourRating_Changed" /> 
    </td> 
    <td> 
     (<asp:Label ID="YourRatingNumber" Text="" runat="server"></asp:Label>) 
    </td> 
</LoggedInTemplate> 
<AnonymousTemplate> 
    <td> 
    <a href="../Default.aspx">Login</a> or Register to Rate 
    </td> 
</AnonymousTemplate> 

page.aspx.cs

 protected void YourRating_Changed(object sender, AjaxControlToolkit.RatingEventArgs e) 
    { 
     ((HtmlGenericControl)FindControl("MainContent_LoginView1_YourRatingNumber")).InnerHtml = e.Value; 

    } 

は私のASPを更新です。 "YourRatingNumber"テキストをe.valueという名前のラベルコントロール。私は多くの方法を試しました。 asp:labelがspanタグとしてレンダリングされていますが、その値にアクセスすることはできません。どのようにこれを行うことができますか?

おかげで...ボブ

答えて

0

AJAXは、ページのロードが発生しないことを意味し、非同期です。 AJAX操作中にラベル・サーバー側の値を変更すると、クライアント側は何も起こりません。ページを更新するには、クライアントに通知する必要があります。これを行うにはjavascriptを使用する必要があります。 Webフォームを使用してこれを行うことはできないと思います。 MVCを使用する場合は、AJAXヘルパーを使用してこれを行うことができますが、サイトの書き換えが必要になります。

私はAJAXイベントを引き起こし、応答を受け取ったときにラベルを更新するようにJavaScriptを書くことをお勧めします。私はまた、http://w3schools.com/ajax/default.aspを読むことをお勧めします、それはどのようにAJAX要求を作成するためにJavaScriptを使用する方法を説明しますが、少しasp.netで動作するように微調整する必要があります。

また、WebフォームまたはMVCのどちらを使用しているかは、似ていますが、AJAXの処理方法が異なります。

+0

あなたのご意見をお聞かせいただき、ありがとうございます。私はWeb Fomsを使用しています。私はまだ私のYourRating_Changedイベントを介して私のASPを含むUpdatePanelを使用する方法があると思います:Label ID = "YourRatingNumberもちろん、私はajaxtoolkit:RatingでAutoPostBackをtrueに変更できますが、それはajaxの目的を破ります。上記のYourRating_Changedブロックのe.callbackresultを使用してjavascript関数を追加するか、または追加しますか? – Bob

+0

私はajaxtoolkit評価コントロールをupdatepanelに配置し、BehaviorIDを使用してJS関数を呼び出します: Sys.Application.add_load(function( ){ $見つける{ \t \t \tのdocument.getElementById( 'MainContent_LoginView1_YourRatingNumber')のinnerHTML = e.get_CallbackResult()( "RatingBehavior1")add_EndClientCallback(関数(送信者、E。); }); }); 素晴らしい作品 – Bob

関連する問題