只需要提示如何使用加載進度圖像通過AJAX提交請求的表單。我正在使用AJAX框架的更新面板。我想知道推薦的方法。通過JQuery或AJAX工具包?通過加載進度通過AJAX提交表單?
請指教,例子對我來說是額外的好處。
只需要提示如何使用加載進度圖像通過AJAX提交請求的表單。我正在使用AJAX框架的更新面板。我想知道推薦的方法。通過JQuery或AJAX工具包?通過加載進度通過AJAX提交表單?
請指教,例子對我來說是額外的好處。
我想知道在 推薦的方法
嗯,這取決於你在做什麼,表單的部分你更新了什麼,有多大的形式,什麼樣的價值觀,你向服務器發送。一般來說,如果你想更新一些簡單的東西(dropdownlist,listbox等),youd通常使用JavaScript(或jQuery)來調用支持AJAX的Web服務。這樣,您只需向服務器發送其所需的數據,像ViewState/cookies等事件不會通過線路發送。您還可以完全控制前/後執行事件(因此您可以添加加載映像,調用WS,然後清除它們)。但是,如果要異步更新整個表單(其中有很多控件),則可能是使用UpdatePanel的正確方法。像GridView這樣的事情對於UpdatePanel來說是很好的例子(因爲你通常需要異步處理編輯,綁定和分頁)。
形象進度變得容易用下面的代碼:
<ProgressTemplate>
<img src="someloadingimage.gif" alt="Loading" />
</ProgressTemplate>
棒,你的UpdatePanel內,每當一個AJAX調用時,加載的圖像將顯示。
HTH
1-準備一個「display:none」樣式屬性的客戶端div。把你的加載圖像放在裏面。
2 - 當用戶或頁面提交請求時,將該div的顯示屬性更改爲「block」。
3-添加某種「信息收到」登錄的響應,並檢查從客戶端這種答覆,那麼div的顯示屬性更改回「無」
這不會阻止標籤和空間酒吧我認爲。 – 2010-09-20 12:02:26
如果您使用JQuery的AJAX請求,那麼你可以使用下面的事件 -
$.ajax({ url: "test.html",
type: "GET",
beforeSend: function(){
-----load your loader here-----
});,
success: function(){
------remove your loader here -----------
Remaining code
}});
您還可以使用POST。在上面的例子中,我使用了GET。
對於您可以參考詳細的文檔 - http://api.jquery.com/jQuery.ajax/
爲您的裝載機,像這樣創建一個小插件。
$.fn.ShowLoader = function(on){
switch(on)
{
case true:
$(this).show();
break;
default:
$(this).hide();
break;
}
}
然後使用以下命令:
$('form').submit(function(){
var Form = $(this);
$('.loader',Form).ShowLoader(true);
//Gather some params
Location = Form.attr('src');
Data = Form.Serialize();
$.post(Location,Data,function(result){
result = result || false;
if(result)
{
$('.loader',Form).ShowLoader(false); //Disable the loader
//Process result
}
});
})
HTML也只是一個普通的形式,與圖像/ DIV中與類的loader
謝謝RPM1984。你的回覆非常詳細,幫助我很多。我打算採用第二種方法(更新整個格式,包含很多gridviews /下拉列表等)。我想JQuery和updatepanel的一個小混合將解決我的問題。 – 2010-09-22 04:56:35
沒問題,樂於幫忙! – RPM1984 2010-09-22 04:58:18
你有沒有任何想法如何顯示導致回發的按鈕旁邊的進度圖像?我的更新面板中有很多按鈕,每個按鈕都會觸發一個單獨的事件,並且我想在引發事件的按鈕旁邊顯示圖像。 – 2010-09-23 08:08:13