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

asp.net|client|web|解决|页面|源代码

  页面中包括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>

时间: 2024-10-28 18:03:20

ASP.NET利用webclient获取页面源代码的解决方的相关文章

sql 变量-利用js获取页面用户输入字符串,作为变量进行CQL语句查询

问题描述 利用js获取页面用户输入字符串,作为变量进行CQL语句查询 我用js编写了一个,从页面获取了用户输入的两个字符串,一个作为键,一个作为值,想在js中利用CQL语句进行select * from 表名 where [键名]=值,这样的查询.查询出所有符合条件的查询结果.但是,变量怎样写都不对,换成固定的属性和值,语句就可以运行,求各位大神帮忙!!!! 解决方案 注意变量拼接,不要放到sql语句里面 var field="abc",value="xx" var

用asp.net c# HttpWebRequest获取网页源代码

  该方法需要传递目标网页的编码方式,比如System.Text.Encoding.Default或者System.Text.Encoding.UTF8 如果哪位高手知道如何自动判断目标页面的编码格式,请在评论中告知.谢谢! /// /// 获取源代码 /// /// /// /// public static string GetPage(string url, Encoding encoding) { HttpWebRequest request = null; HttpWebRespons

asp教程:利用fso获取文件名和获取文件或文件夹

获取文件名 这个例子演示如何使用GetFileName方法获取文件名的最后部分中指定的路径. 我们来看个fso获取文件名的实例吧. <html> <body> <% Set fs=Server.CreateObject("Scripting.FileSystemObject") Response.Write("The file name of the last component is: ") Response.Write(fs.Get

利用WebClient获取远程数据(仅做备份)

client|web|备份|数据      public DataSet GetData(string httpUrl)              {                     string xmlPath = @"http地址"; // 该地址不能包含中文                     DataSet ds = new DataSet();                     WebClient wc = new WebClient();         

ASP动态网页下UTF-8页面乱码的解决方法

动态|解决|网页|页面 为什么在ASP里指定了codepage为65001还经常显示乱码.才子在这里将这个问题详细解释一下,以免很多朋友再走弯路,甚至排斥UTF-8. 如果你还不知道UTF-8是什么东东,那才子建议你先去搜索一下UTF-8的相关资料吧. UTF-8编码之所以被越来越多的人接受甚至喜欢,肯定是有道理的,在WEB2.0盛行的今天,在大谈多浏览器兼容的同时,不得不想到字符编码不同所造成的乱码现象同样需要得到很好的处理..... 在N年以前,IE6以下的所有版本,只要没有安装相应的字库,

asp.net Request.Files获取不到文件解决方法

面我们为你分析原因与解决方法 使用表单文件域(input type="file")时,在postback中使用request.files获取不到文件.研究了半天,发现在input标签中使用runat="server"后,是能够正常获取的.但是为了前端的元素id不被修改,我尽可能不使用runat="server". <form enctype="multipart/form-data" id="form1&quo

利用webBrowser获取框架内Html页面内容

原文:利用webBrowser获取框架内Html页面内容 利用webBrowser获取页面比较简单,MSDN下有示例,在这里不必多说. 可是一些 HTML 文档由"框架"构成,或可以存放它们自己独特 HTML 文档的窗口.使用框架可以轻松地创建 HTML 页面,其中一页或多页在其他框架持续更改它们内容的同时保持静态,例如导航栏. HTML 作者可以采用以下两种方法之一创建框架: 使用 FRAMESET 和 FRAME 标记,创建固定窗口. - 或 - 使用 IFRAME 标记,创建可以

利用WebClient和WebRequest类获得网页源代码

GetURLHtml.aspx<%@ Page language="c#" Codebehind="GetURLHtml.aspx.cs" Src="GetURLHtml.aspx.cs" AutoEventWireup="false" Inherits="Lion.Web.Forum.WebForm1" %><HTML> <HEAD>  <title>Lio

利用Asp.net Ajax异步获取xml文档内容

ajax|asp.net|xml|异步 Ajax原意本是让人利用异步获取XML内容,以实现无刷新的网页效果asp.net ajax已将底层内容封装实现起来远比自写xmlhttp来的方便,至少浏览器兼容方面要强得很多下面以一个www.asp.net的示例说明一下利用microsoft ajax library来简单异步获取xml文档的方法 // 返回XML的Web 请求function OnSucceededXml(executor, eventArgs) ...{    if (executor