我正在使用Web服務API來拉取json數據,然後將其轉換爲數據集並將數據顯示到頁面加載的REPEATER中。現在我的問題是,有沒有辦法我可以先加載頁面,然後它會顯示一條消息,如加載請等待,然後像拉動數據和在中繼器中顯示的所有處理髮生。在asp.net頁面生命週期中是否有類似的事件?在頁面加載後需要中繼器數據綁定
回答
在ASP.NET生命週期中沒有類似事件,儘管您可以使用.NET控件(更新面板,定時器等)來設計一些東西,但更合理的解決方案可能是簡單地使用AJAX和WebMethods (of which here is an example) 。
然後,您通常也可以忽略服務器端中繼器的外殼元素,並僅填充純本機客戶端HTML元素。
我建議你改變你的策略。而不是將ASP服務器控件及其事件與AJAX混合使用,而是使用經典的AJAX(jQuery)+ html/css。
你的中繼器是一個簡單的div
<div id="DataWrapper">
<div id="loadingLabel" style="display:none;">Loading...</div>
<div id="DataContainer">
</div>
</div>
然後,您可以使用任何頁面的Web方法或ASMX web服務(或支持AJAX的WCF服務,我個人比較喜歡):
public static IEnumerable GetMyData(int KeyID)
{
DataTable sourceData = GetRepeaterData(KeyID);
return sourceData.AsEnumerable().Select(row =>
{
return new
{
id = row["ID"].ToString(),
someName = row["UserName"].ToString(),
someSurname = row["userSurname"].ToString()
};
});
}
在JavaScript中有一個函數可以調用這個服務: //但是在那個調用之前,顯示加載..標籤
$('#loadingLabel').show();
$.ajax({
type: 'POST',
url: '/' + 'GetMyData',
data: {'KeyID':'8'},
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 30000,
success: onSuccess,
error: onError
});
0通過結果在JavaScript
..和循環:
function onSuccess(result)
{
var src = result.d;
for (var post in src) {
/*
here you can create an JavaScript element and assign a CSS class to it
*/
$("#DataContainer").append('<div class="myClass">'+ src[post].someName+'</div>');
}
// when loading is finished hide the loading.. label
$('#loadingLabel').hide();
}
..和CSS:
.myClass
{
border: 1px single #000000;
padding: 5px;
}
這當然只是極短的答案,但我希望它給你一些大致的瞭解。這是非常輕量級的解決方案,你會發現它比混合ASP中繼器和更新面板等更有效。
要獲得關於性能的一些實數,請安裝Fiddler並進行比較。
此外,檢查出這篇文章,這是非常有用的,包含了一些非常有用的建議: http://encosia.com/use-jquery-and-aspnet-ajax-to-build-a-client-side-repeater/
獲取錯誤使用泛型類型'System.Collections.Generic.IEnumerable
- 1. 在頁面加載綁定函數,然後解除綁定
- 2. 在綁定頁面加載
- 3. 與fullpagejs Collabarating angular2,需要加載完整頁js後綁定數據從直角
- 4. 綁定mvvm燈繼電器命令頁面加載事件
- 5. 如何停止在asp.net中加載頁面的數據綁定
- 6. 頁面加載後綁定列表到數據表(不延遲加載)
- 7. 如何在頁面加載數據綁定下拉列表
- 8. 需要綁定數據
- 9. 想要在綁定到中繼器的每個頁面中有10行
- 10. 如何從主頁面加載後加載特定數據的頁面中抓取數據?
- 11. 加載頁面後的Kendo數據源
- 12. 的onsubmit需要重新加載頁面
- 13. PHP - 不需要加載頁面
- 14. 綁定中繼器的數據源
- 15. 綁定列表到數據中繼器
- 16. 將數據綁定到中繼器
- 17. c#combobox綁定數據中繼器
- 18. asp中繼器數據綁定
- 19. 如何在頁面加載後加載數據表?
- 20. 需要創建綁定並在代碼後面傳遞參數
- 21. AngularJS - 一切都需要加載在初始頁面加載?
- 22. 加載內容AJAX Jquery - 需要發送數據到加載頁面如何?
- 23. 在頁面加載時沒有數據庫調用綁定數據
- 24. 需要刷新/重定向頁面後,PHP後更新頁面
- 25. 數據綁定到後面
- 26. 我需要React數據綁定(Arr推後數據刷新)
- 27. databow數據綁定在datagridviewcombobox後面,而數據綁定
- 28. 圖片需要很多時間在ASP中繼器來加載
- 29. 頁面加載後出現jQuery頁面預加載器
- 30. 僅在完成頁面視圖中的數據加載之後才隱藏頁面加載器
你應該重新考慮改變你的計劃。中繼器是一個僅用於服務器端的asp控制器。您希望顯示沒有數據的頁面,並使用不存在且不是已知元素的中繼器在客戶端加載數據。 –