Masalah utamanya adalah ketika menggunakan webclent untuk mendapatkan kode sumber halaman, ketika halaman berisi datagrid dan kontrol menggunakan fungsi pagingnya sendiri, metode normal hanya dapat memperoleh data halaman pertama dan data halaman lainnya.
Jika Anda tidak bisa mendapatkannya, berikut solusinya.
Metode satu:
Ide utamanya adalah menggunakan klien web untuk mengirim data ke layanan untuk mendapatkan data. Di sini kami terutama menggunakan alat kecil untuk menganalisis komposisi dan menjalankan proses halaman. Selama analisis, kami menemukan bahwa ketika halaman berikutnya diklik, ada tiga parameter akan diposting.
Mereka adalah: __EVENTTARGET, __EVENTARGUMENT, __VIEWSTATE. Disini parameter __VIEWSTATE didapat saat membuka halaman pertama data, __EVENTTARGET adalah nama kontrol yang akan dipanggil (dapat diperoleh melalui httpwatch), __EVENTARGUMENT adalah parameter saat memanggil event, kodenya sebagai berikut:
string result ="";
hasil = ini.loadtop (" http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110 ");
string vie = GetTagContent(hasil,"nama="__VIEWSTATE" value="","" />");
vie=vie.Replace ("nama="__VIEWSTATE" value="","");
vie=vie.Ganti("" />","");
Klien Web a = Klien Web baru();
NameValueCollection na = baru NameValueCollection();
na.Add("__EVENTTARGET","NewHouseGridModule1:ModuleSplitPage:lbnNextPage");
na.Tambahkan("__VIEWSTATE",vie);
byte [] ss = a.UploadValues(" http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110","POST",na );
Pengkodean encode=Pengkodean .GetEncoding ("utf-8");
hasil=encode.GetString(ss)
;
Gunakan kontrol axWebBrowser untuk mengunduh halaman pertama, lalu tambahkan kode berikut di bagian bawah:
<script bahasa='javascript' type='text/javascript'>__doPostBack('NewHouseGridModule1$ModuleSplitPage$lbnNextPage','');</script>,
sumber: http://bccu.cnblogs.com/archive/2006/ 05/11/397382.html