ASP.NET利用webclient获取页面源代码的解决方法

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-01 13:51 点击:

  页面中包括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控件,下载第一页,然后在最下面这如下代码:

<script language='javascript' type='text/javascript'>__doPostBack('NewHouseGridModule1$ModuleSplitPage$lbnNextPage','');</script>

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET&#160;GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1