Das Hauptproblem besteht darin, dass bei Verwendung von Webclent zum Abrufen des Seitenquellcodes, wenn die Seite ein Datagrid enthält und das Steuerelement eine eigene Paging-Funktion verwendet, die normale Methode nur die Daten der ersten Seite und die Daten anderer Seiten abrufen kann.
Wenn Sie es nicht bekommen können, finden Sie hier die Lösung.
Methode eins:
Die Hauptidee besteht darin, den Webclient zu verwenden, um Daten an den Dienst zu senden. Hier verwenden wir hauptsächlich ein kleines Tool, um die Zusammensetzung und den laufenden Prozess der Seite zu analysieren Parameter werden veröffentlicht.
Dies sind: __EVENTTARGET, __EVENTARGUMENT, __VIEWSTATE. Hier wird der Parameter __VIEWSTATE beim Öffnen der ersten Datenseite abgerufen, __EVENTTARGET ist der Name des aufzurufenden Steuerelements (kann über httpwatch abgerufen werden), __EVENTARGUMENT ist der Parameter beim Aufrufen des Ereignisses, der Code lautet wie folgt:
Zeichenfolgenergebnis ="";
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 = new WebClient();
NameValueCollection na = new NameValueCollection();
na.Add("__EVENTTARGET","NewHouseGridModule1:ModuleSplitPage:lbnNextPage");
na.Add("__VIEWSTATE",vie);
byte [] ss = a.UploadValues(" http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110","POST",na );
Encoding encode=Encoding .GetEncoding ("utf-8");
result=encode.GetString(ss);
Methode 2:
Verwenden Sie das axWebBrowser-Steuerelement, um die erste Seite herunterzuladen, und fügen Sie dann unten den folgenden Code hinzu:
<script language='javascript' type='text/javascript'>__doPostBack('NewHouseGridModule1$ModuleSplitPage$lbnNextPage','');</script>,
Quelle: http://bccu.cnblogs.com/archive/2006/ 11.05.397382.html