2015-10-13 57 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直到到达最后一页。