4

したがって、ASP.Net アプリケーション (かなり標準的なもの) があり、そこには多数の更新パネルとポストバックがあります。

一部のページでは

<ajax:UpdatePanelAnimationExtender ID="ae" runat="server" TargetControlID="updatePanel" BehaviorID="UpdateAnimation">
    <Animations>
        <OnUpdating>
            <FadeOut Duration="0.1" minimumOpacity=".3"  />
        </OnUpdating>
        <OnUpdated>
            <FadeIn minimumOpacity=".5" Duration="0" />
        </OnUpdated>
    </Animations>
</ajax:UpdatePanelAnimationExtender>

これは基本的に、ポストバックが行われているときにページを白くします (ただし、これはモーダル ダイアログの灰色の背景と衝突します)。場合によっては、ページの中央にスピニー アイコンがあるだけの progressupdate コントロールがあります。

しかし、それらのどれも特に素晴らしくはなく、少しぎこちなく見えます。また、アプリのさまざまな場所で多くのコードを必要とします。

他の人はどのような方法を使用し、効果的だと思いますか?

4

4 に答える 4

4

UpdatePanelAnimationExtenderは使用していませんが、UpdateProgress-ControlをアニメーションGIF(Bermos Link)と組み合わせて使用​​しています。

<asp:UpdateProgress ID="UpdateProgress1" DynamicLayout="true" runat="server" AssociatedUpdatePanelID="UdpImeiLookup" DisplayAfter="500" >
            <ProgressTemplate>
            <div class="progress">
                <img src="images/ajax-loader-arrows.gif" />&nbsp;please wait...
            </div>
            </ProgressTemplate>
</asp:UpdateProgress>

ProgressTemplateは、関連する更新パネルのすべてのポストバックに表示されます(この例では500ミリ秒後)。

編集:クラス「progress」は次のようになります。

.progress
{
  text-align:center;
  vertical-align:middle;
  position: absolute;
  left: 44%;
  top: 35%;
  border-style:outset;
  border-color:silver;
  background-color:Silver;
  white-space:nowrap;
  padding:5px;
}

よろしく、ティム

于 2010-04-30T12:00:48.827 に答える
1

アニメーション GIF は最小限のコードしか必要とせず、次のサイト - Ajaxload - Ajax loading gif generatorから好きな色で好きなものを選択できます。

于 2010-04-30T10:59:51.423 に答える
1

他のものと同様に、モーダル ポップアップで UpdateProgress を使用することをお勧めします。

このツイストを追加し、ポップアップ、UpdateProgress、およびこのコードをマスターページに配置するので、必要なときはいつでもマスターページをコンテンツ ページに接続するだけです。

 <script type="text/javascript">
 var ModalProgress ='<%= ModalProgress.ClientID %>';
  Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginReq); 
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endReq);    
  function beginReq(sender, args){     
  // shows the Popup     
  $find(ModalProgress).show();        
  }  
  function endReq(sender, args) 
  {     
  //  hide the Popup     
  $find(ModalProgress).hide(); 
  }

</script>

ここにいくつかの参照:

http://mattberseth.com/blog/2007/07/modalpopup_as_an_ajax_progress.html

http://vincexu.blogspot.com/2008/10/how-to-make-modalupdate-progress-bar-on.html

于 2010-05-04T15:35:43.737 に答える
0

これは私が使用しているもので、モーダルポップアップタイプの背景とgifがあります

 <asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0">
<ProgressTemplate>
  <div style="position: absolute; width: 100%; height: 100%; z-index: 100; background-color: Gray;
    filter: alpha(opacity=70); opacity: 0.7;">
    &nbsp;
  </div>
  <table style="position: absolute; width: 100%; height: 100%; z-index: 101;">
    <tr>
      <td align="center" valign="middle">
        <div style="color: Black; font-weight: bolder; background-color: White; padding: 15px;
          width: 200px;">
          <asp:Image ID="Image3" runat="server" ImageUrl="~/Images/progress.gif" />
          Please wait....
        </div>
      </td>
    </tr>
  </table>
</ProgressTemplate>

于 2010-04-30T22:16:11.393 に答える