All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
ASP.NET利用webclient获取页面源代码的解决方法_[Asp.Net教程]

Writer: delv Article type: Programming skills(编程技巧) Time: 2014/1/6 9:03:12 Browse times: 322 Comment times: 0

ASP.NET利用webclient获取页面源代码的解决方法_[Asp.Net教程]


Head photo

Go homepage
Upload pictures
Write articles

ASP.NET利用webclient获取页面源代码的解决方法_[Asp.Net教程]























页面中包括DataGrid时,利用webclient获取页面源代码的解决方


主要问题,利用webclent获取页面源代码时,当页面中含有datagrid,并且该控件使用了自带的分页功能时,正常的方法只能获取第一页面的数据,其它页面的数据取不到,以下是解决方法。




  方法一:




  主要思路是利用webclient,post数据到服务来取得数据,这里主要用了一个小工具可以分析页面的组成及运行过程,分析中发现当点击下一页时,会Post三个参数过去, 分别是:__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 = 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);




  方法二:




  利用axWebBrowser控件,下载第一页,然后在最下面这如下代码:









来源:博客园














































There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.