页面中包括DataGrid时,利用webclient获取页面源代码的解决方
作者:互联网
2009-06-30
主要问题,利用webclent获取页面源代码时,当页面中含有datagrid,并且该控件
使用了自带的分页功能时,正常的方法只能获取第一页面的数据,其它页面的数据
取不到,以下是解决方法。
方法一:
主要思路是利用webclient,post数据到服务来取得数据,这里主要用了一个小工具
可以分析页面的组成及运行过程,分析中发现当点击下一页时,会Post三个参数过去,
分别是:__EVENTTARGET、__EVENTARGUMENT、__VIEWSTATE。这里__VIEWSTATE参数在从打开第一页数据时取得,__EVENTTARGET为要调用控件的名称(可以通过httpwatch来获取) ,__EVENTARGUMENT是调用事件时的参数,代码如下:
string result="";
result = this.loadtop ("");
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(");
Encoding encode=Encoding .GetEncoding ("utf-8");
result=encode.GetString(ss);
方法二:
利用axWebBrowser控件,下载第一页,然后在最下面这如下代码:
,
出处:
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
详解.NET Core如何构建一个弹性的HTTP请求机制
.NET Core使用Redis实现创建分布式锁
.NET内存管理释放的两种方式
基于.NET8实现WinFrom应用窗口自动缩放功能
浅析如何在 ASP.NET Core中实现速率限制
.NET Core 委托原理解析(最新推荐)
.NET 9 new features-Microsoft.ML.Tokenizers 库(文本标记化功能)
如何在 .NET 中使用 Tesseract 识别图片文字
ASP.NET Core Web API之Token验证的实现
asp.net core web api项目添加自定义中间件的实现
AI精选
