2017-09-16 44 views
0

情況:我製作代碼以廢棄網頁。它基於模板10並使用MVVM和HTML Agility Pack的UWP應用程序。抓取的頁面是我可以前進的結果(頁面)列表,返回到源網頁上的結果列表中。全部被刮掉,即,處理這樣的列表的web結果和web命令的列表。自動加載報廢網頁的下一頁/預設頁面的最佳方法

要求:我想刪除按鈕「上一頁」和「下一頁」。當我移動到當前加載的結果列表(網頁)的頂部或底部時,想法需要自動發送請求以加載轉發頁面或反向頁面。

注意:我可以在View中的列表頂部或底部顯示消息。我有一種感覺,有更好的方法來加載ViewModel中列表的上一頁和下一頁。

我將不勝感激任何建議如何做到這一點。 所有的道路通往羅馬,請告訴我最好的方法。提前感謝您的幫助。

+1

通過'廢料'你的意思是'刮'和'報廢'你的意思是'刮'嗎? – mjwills

+0

請退後一步並解釋您嘗試解決的潛在問題。換句話說,**爲什麼**你是否在抓取網頁? – mjwills

+0

@ mjwills在這種情況下,頁面顯示文件列表。 Scraping頁面是指所有的文件描述,圖標和鏈接都存儲在列表中,以便將其顯示爲應用程序界面中的Web內容,並將命令(下一頁,上一頁,排序依據...)作爲Web請求存儲在變量中,以便將其作爲網頁請求稍後。我正在抓取頁面來顯示Web內容,並在我的應用程序中使用Web鏈接作爲命令。 –

回答

1

我可以在View中的列表頂部或底部顯示消息。

如果你能得到的消息時,該列表的頂部或底部,你可以定義一個全局變量所請求的地址和一個變量聲明爲頁面索引。例如,如下所示:http://www.test.com?page= {0}

然後,當您收到「頂部」或「底部」消息時,可以將HTTP請求發送到該地址並獲取返回的內容。

private int pageIndex = 0; 
private string address = @"http://www.test.com?page={0}"; 

private async void GetPreviousPageContent() 
{ 
    pageIndex--; 
    Uri uri = new Uri(string.Format(address,pageIndex)); 
    HttpClient client = new HttpClient(); 
    var response = await client.GetAsync(uri); 
} 

private async void GetNextPageContent() 
{ 
    pageIndex++; 
    Uri uri = new Uri(string.Format(address, pageIndex)); 
    HttpClient client = new HttpClient(); 
    var response = await client.GetAsync(uri); 
} 

在這裏,我有另一個建議給你。你可以爲你的listview實現兩個函數。 Pull to refreshISupportIncrementalLoading。當列表視圖滾動到頂部並將其拉下時,它將觸發特定事件,在這種情況下,您可以發送HTTP請求來獲取上一頁的內容。當列表視圖滾動到底部時,將觸發ISupportIncrementalLoading的方法,在此方法中,您可以獲取下一頁的內容。爲此,您仍然需要聲明兩個變量作爲請求地址和頁面索引。

+0

我更喜歡使用「ISupportIncrementalLoading」接口,它似乎是更專業的方式。 –

相關問題