2009-06-16 11 views
0

人気のあるブログの簡単な「レシピ」に従うと、アニメーションGIFの更新パネルがポップアップ表示されないようです。更新パネルのアニメーションが表示されない

私たちはASP.NET 3.5にVBコードビヘイビアのページを使用しています(AJAXの少しの部分だけを振りかざすだけです)。ユーザーには、編集が許可されているデータでいっぱいの「選択ページ」が表示されます。ページには、下のグリッドビューのフィルタとして使用される、いくつかのチェックボックスと上部にドロップダウンリストがあります。特定のrownの適切なリンクをクリックすると、そのアイテムの詳細ページにリダイレクトされます。

チェックボックスは、トリガされると、データベースにアクセスして、データグリッドがバインドされているオブジェクトのリストを取得します(データベースから読み取るオブジェクトのクラスを示す)。ドロップダウンリストは、ディスプレイを 'フィルタリングする'ために使用されます。これらのフィルタは非常に迅速に動作しますが、問題はありません。しかし、データベースへの特定のトリップは多くの履歴データを呼び出し、ページが再表示されるまでに時間がかかります。私たちは、ソフトウェアが動作していることをユーザに伝えるために画面上に何かを求めました。

は、私たちは、私がポップアップアニメーションパネルが届かないよう残念ながら、私は何か間違ったことしなければならない here in Matt Berseth's blog

使用した方法を試しに決めました。

最初の違いは、問題のページにマスターページがあることです。重要であるかどうかはわかりません。しかしここにaspの後のaspxのスニペットがあります:コンテンツとasp:ScriptManagerタグ:

最初に私は、参照ページの例のようにonUpdatingとonUpdate関数を持っています。

次に、チェックボックスとドロップダウンリストがあるテーブルから始まる '折り返し' divの開始点があります。次のように

それらが定義されている方法の例は次のとおりです。

その後
<asp:TableCell ID="TableCell4" runat="server"><asp:CheckBox ID="chkShowCancelled" runat="server" Text="Cancelled" AutoPostBack="True" /></asp:TableCell> 
    <asp:TableCell>TO#:<asp:DropDownList ID="ddlTO" runat="server" AutoPostBack="True"></asp:DropDownList></asp:TableCell> 

、UpdatePanelのは、その中にGridViewのである:

<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:GridView ID="grdRequests" runat="server" Style="z-index: 100; left: 0px; top: 0px" 
      AutoGenerateColumns="False" CellPadding="4" Font-Size="Small" ForeColor="#333333" 
      GridLines="None" PageSize="25" AutoGenerateSelectButton="False" AllowSorting="True" Width="100%" EnableViewState="False"> 
      <HeaderStyle CssClass="tableheader" /> 
      <FooterStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
      <RowStyle BackColor="#EFF3FB" /> 
      <Columns> 
       ...Template Fields Deleted for Brevity... 
      </Columns> 
      <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
      <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
      <HeaderStyle BackColor="#034EA1" Font-Bold="True" ForeColor="White" /> 
      <EditRowStyle BackColor="#2461BF" /> 
      <AlternatingRowStyle BackColor="White" /> 
     </asp:GridView> 
    </ContentTemplate> </asp:UpdatePanel> 

ことがAnimationExtenderとされた直後そして、ポップアップパネル

<cc1:UpdatePanelAnimationExtender runat="server" TargetControlID="updatePanel"> 
    <Animations> 
     <OnUpdating> 
      <Parallel duration="0"> 
       <ScriptAction Script="onUpdating();" /> 
      </Parallel> 
     </OnUpdating> 
     <OnUpdated> 
      <Parallel duration="0"> 
       <ScriptAction Script="onUpdated();" /> 
      </Parallel> 
     </OnUpdated> 
    </Animations> 
</cc1:UpdatePanelAnimationExtender> 
<asp:Panel ID="pnlPopup" runat="server" CssClass="progress" style="display:none;"> 
    <div class="pcontainer"> 
     <div class="pheader">Loading, please wait...</div> 
     <div class="pbody"> 
      <img alt="Progressing..." src="~/Images/activity.gif" /> 
     </div> 
    </div> 
</asp:Panel> 

「ラッピング」のちょうど終了タグだけbefo DIVテーブルを再。

例では、Mattは単純に、Page.Load(IsPostbackを確認した後)にSystem.Threading.Thread.Sleep(3000)ステートメントを使用してページをスリープ状態にして、アニメーションをポップアップ表示します。私はPage.Load(VBでのコードビハインド)で多くのことが起こっていますが、アニメーションは単にチェックボックスの1つをクリックして(データベースへの長い移動)、ドロップダウンリストから何かを選択しても、 (私がすでに持っている結果をフィルタリングするため)。

重要な場合は、Table、GridView、UpdatePanel、UpdatePanelAnimationExtenderを持つラッピングdivはプロパティなしで定義されます。実際には、aspタグからJavascriptを描くだけでした。

私には何が欠けていますか?

+0

@デビッドは - Ajaxがサイト上で適切に別の場所で作業していますされていますか?私。期待どおりに非同期ポストバックを実行する更新パネルですか? –

+0

私たちはいくつかのUpdatePanelを試してみましたが、うまくいきませんでした - ウェブサービスを呼び出すときに私たちのウェブサーバーに問題があるかもしれないと思った(適切に診断する時間がなかった)。しかし、AccordionエクステンダーやPanelrounderのようなものはうまく動作します。 – David

+0

グリッドの読み込み中に使用していたアニメーションがいくつかありましたが、負荷が非常に速くなってアニメーションが見えなくなりました。これはここで起こっていることかもしれませんが、あなたがここでそれをどうやってやるのか分からないが、あなたはそれを見るためにそれを遅くする必要があります。持続時間を増やすか? – Bryan

答えて

1

私はAJAXコントロールツールキット1.0を.net 2.0で使用しました。私の更新パネルは完全に機能します。

まず、javascriptコードはどこですか?

編集:ここで働く私のコードです:

       <ContentTemplate> 
            <asp:UpdateProgress id="tab1Updating" runat="server" AssociatedUpdatePanelID="tab1Update"> 
                <ProgressTemplate> 
                 <div> 
                  <img src="./IMG/loader.gif" alt="loading" /> 
                   Please Wait... 
                 </div> 
                </ProgressTemplate> 
            </asp:UpdateProgress> 
          </ContentTemplate> 
          </asp:UpdatePanel> 

         </ContentTemplate> 
+0

順序は次のとおりです。 <%@ページディレクティブ... <%@登録 - Ajaxのキットのため ます。 をonUpdated。 – David

+0

私のコードの一部を組み込むように私のeditmを修正しました。上記のコードはtabPanelにあります(ただし、どこでもかまいません)。あなたがそれを理解できることを願っています。 – waqasahmed

関連する問題