Основная проблема заключается в том, что при использовании webclent для получения исходного кода страницы, когда страница содержит datagrid и элемент управления использует собственную функцию подкачки, обычный метод может получить только данные первой страницы и данные других страниц.
Если вы не можете его получить, вот решение.
Способ первый:
Основная идея состоит в том, чтобы использовать веб-клиент для отправки данных в сервис для получения данных. Здесь мы в основном используем небольшой инструмент для анализа состава и процесса работы страницы. В ходе анализа мы обнаружили, что при нажатии на следующую страницу происходит три. параметры будут опубликованы.
Это: __EVENTTARGET, __EVENTARGUMENT, __VIEWSTATE. Здесь параметр __VIEWSTATE получается при открытии первой страницы данных, __EVENTTARGET — имя вызываемого элемента управления (можно получить через httpwatch), __EVENTARGUMENT — параметр при вызове события, код следующий:
string result ="";
result = this.loadtop (" http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110 ");
string vie = GetTagContent(result,"name="__VIEWSTATE" value="","" />");
vie=vie.Replace ("name="__VIEWSTATE" value="","");
vie=vie.Replace ("" />","");
WebClient a = новый WebClient();
NameValueCollection na = новая NameValueCollection();
na.Add("__EVENTTARGET","NewHouseGridModule1:ModuleSplitPage:lbnNextPage");
na.Add("__VIEWSTATE",ви);
byte [] ss = a.UploadValues(" http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110","POST",na );
Кодировка encode=Кодировка .GetEncoding("utf-8");
результат = encode.GetString (СС);
Метод 2:
Используйте элемент управления axWebBrowser, чтобы загрузить первую страницу, а затем добавьте следующий код внизу:
<script Language='javascript' type='text/javascript'>__doPostBack('NewHouseGridModule1$ModuleSplitPage$lbnNextPage','');</script>,
источник: http://bccu.cnblogs.com/archive/2006/ 11.05.397382.html