Le principal problème est que lors de l'utilisation de webclent pour obtenir le code source de la page, lorsque la page contient une grille de données et que le contrôle utilise sa propre fonction de pagination, la méthode normale ne peut obtenir que les données de la première page et les données des autres pages.
Si vous n'y parvenez pas, voici la solution.
Première méthode :
L'idée principale est d'utiliser un client Web pour publier des données sur le service afin d'obtenir des données. Ici, nous utilisons principalement un petit outil pour analyser la composition et le processus d'exécution de la page. Au cours de l'analyse, nous avons constaté que lorsque l'on clique sur la page suivante, trois. les paramètres seront affichés.
Ce sont : __EVENTTARGET, __EVENTARGUMENT, __VIEWSTATE. Ici, le paramètre __VIEWSTATE est obtenu à l'ouverture de la première page de données, __EVENTTARGET est le nom du contrôle à appeler (peut être obtenu via httpwatch), __EVENTARGUMENT est le paramètre à l'appel de l'événement, le code est le suivant :
chaîne résultat = "";
result = this.loadtop (" http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110 ");
string vie = GetTagContent(result,"name="__VIEWSTATE" value="","" />");
vie=vie.Replace ("nom="__VIEWSTATE" value="","");
vie=vie.Replace ("" />","");
WebClient a = new WebClient();
NameValueCollection na = new NameValueCollection();
na.Add("__EVENTTARGET","NewHouseGridModule1:ModuleSplitPage:lbnNextPage");
na.Add("__VIEWSTATE",vie);
octet [] ss = a.UploadValues(" http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110","POST",na );
Encodage encode=Encodage .GetEncoding ("utf-8");
result=encode.GetString(ss);
Méthode 2 :
Utilisez le contrôle axWebBrowser pour télécharger la première page, puis ajoutez le code suivant en bas :
<script langage='javascript' type='text/javascript'>__doPostBack('NewHouseGridModule1$ModuleSplitPage$lbnNextPage','');</script>,
source : http://bccu.cnblogs.com/archive/2006/ 05/11/397382.html