2015-10-13 88 views
0

我有一些數據以分頁的表格格式。 如何在不訪問使用c#web瀏覽器的網頁的情況下從Web瀏覽器訪問所有分頁數據。如何點擊通過C#web瀏覽器的Asp.net Gridview分頁?

現在我只能訪問第一頁數據。

這是我的代碼。

DataTable mDt = new DataTable(); 
int startPosotion = table.InnerHtml.IndexOf("<tbody>"); // Start <tbody> from where Actual Data Exist 
int endPosotion = table.InnerHtml.IndexOf("</tbody>"); // End </tbody> where Data Finish 
string data = table.InnerHtml.Substring(startPosotion, (endPosotion - startPosotion) + count); 
data = data.Replace("<br>", "<br></br>"); 

XmlTextReader xml = new XmlTextReader(new System.IO.StringReader(data)); 
int i = 0; // DataTable Columns 
List<string> c = new List<string>(); 

while (xml.Read()) 
{ 
    switch (xml.NodeType) 
    { 
     case XmlNodeType.Text: //Display the text in each element. 
      c.Add(xml.Value); 
      i++; 
      break; 
    } 

    if (i == 9) 
    { 
     var rows = mDt.Select("TransactionId='" + c[0] + "'"); 
     if (rows == null || rows.Count() == 0) 
     { 
      var z = c[3].ToString().Trim() + " " + c[4].ToString().Trim() + " " + c[5].ToString().Trim(); 
      mDt.Rows.Add(c[0].ToString().Trim(), c[1].ToString().Trim(), c[2].ToString().Trim(), z, c[6].ToString().Trim(), c[7].ToString().Trim(), c[8].ToString().Trim()); 
     } 

     i = 0; 
     c = new List<string>(); 
    } 
} 
dgvTariff.DataSource = mDt; 
dgvTariff.Refresh(); 

Plz給我任何解決方案,如何通過編程方式在C#Web瀏覽器中獲取所有分頁數據。

回答

0

1-創建一個Windows應用程序,並在窗體中使用System.Web.Form.WebBrowser控件。

2-設置使用Navigate方法的默認頁面的URL,並通過你的第一個網頁的URL像webBrowser.Navigate(url)

3-亨德爾的DocumentCompleted事件,並採集數據。一旦從webBrowser.Document獲取當前頁面的數據。使用webBrowser.Document對象找到下一個頁面的鏈接從文檔的鏈接使用`

HtmlElement submit = webBrowser.Document.GetElementById("lnkNext");` 
//Invoke the click 
submit.InvokeMember("click"); 

這將做回發和將加載一個頁面,你DocumentCompleted事件會再次被調用。

重複步驟3直到到達最後一頁。