|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
其实Java之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是Java的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。asp.net|client|web|办理|页面|源代码 页面中包含DataGrid时,使用webclient猎取页面源代码的办理方
次要成绩,使用webclent猎取页面源代码时,当页面中含有datagrid,而且该控件利用了自带的分页功效时,一般的办法只能猎取第一页面的数据,别的页面的数据取不到,以下是办理办法。
办法一:
次要思绪是使用webclient,post数据到服务来获得数据,这里次要用了一个小工具能够剖析页面的构成及运转历程,剖析中发明当点击下一页时,会Post三个参数已往,分离是:__EVENTTARGET、__EVENTARGUMENT、__VIEWSTATE。这里__VIEWSTATE参数在从翻开第一页数据时获得,__EVENTTARGET为要挪用控件的称号(能够经由过程httpwatch来猎取),__EVENTARGUMENT是挪用事务时的参数,代码以下:
stringresult="";
result=this.loadtop("http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110");
stringvie=GetTagContent(result,"name="__VIEWSTATE"value="",""/>");
vie=vie.Replace("name="__VIEWSTATE"value="","");
vie=vie.Replace(""/>","");
WebClienta=newWebClient();
NameValueCollectionna=newNameValueCollection();
na.Add("__EVENTTARGET","NewHouseGridModule1:ModuleSplitPage:lbnNextPage");
na.Add("__VIEWSTATE",vie);
byte[]ss=a.UploadValues("http://localhost/ProjectInfo.aspx?JOBNO1=2001-09110","POST",na);
Encodingencode=Encoding.GetEncoding("utf-8");
result=encode.GetString(ss);
办法二:
使用axWebBrowser控件,下载第一页,然后在最上面这以下代码:
<scriptlanguage=javascripttype=text/javascript>__doPostBack(NewHouseGridModule1$ModuleSplitPage$lbnNextPage,);</script>
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。 |
|