首先恭喜社区重新正常运转!
最近做一个小说索引服务,对于如何通过post方式(地址栏传参)更改datagrid页数出现疑问。
比如对页面:http://www.sdxsw.com/Book/ShowBookList.aspx,如何传递地址栏参数使这个页面跳转到其它分页上

解决方案 »

  1.   

    确实不知道怎么传递,还是不能传递、必须form提交方式?
      

  2.   

    一般做法:
    1.在GridView下添加一个HyperLinkField
    2.设置HyperLinkField的两个属性DataNavigateUrlFields和DataNavigateUrlFormatString。  DataNavigateUrlFields:获取或设置数据源中字段的名称,
                                用于为 HyperLinkField 对象中的超链接构造 URL。(一般我们会传进一个ID)  DataNavigateUrlFormatString:获取或设置用于指定格式的字符串,
                                       HyperLinkField 对象中的超链接的 URL 将以此格式呈现。
      这两个属性的具体用法请查看MSDN。
    3.接收页一般需要一个可接受参数的DataSource和一个DetailsView用于呈现。
    4.GridView把参数传给接收页,实现跳转。具体做法:
    具体到你这个例子,假设你从ShowBookList.aspx中的GridView(ID为BookList)传一个BookID给接受页面BookDetails.aspx(用来显示该书具体信息)1.GridView中的HyperLinkField代码:
                
    <asp:HyperLinkField DataNavigateUrlFields="BookID" 
                        DataNavigateUrlFormatString="BookDetails.aspx?BookID={0}"
                        Text="详细信息" />
    2.DataSource的设置回头再说,先去吃个饭。
    Thanks.
      
      

  3.   

    3Q
    问题已解决。@ Bikerboy:
    可能你误解了我的意思(也可能是我表达不明确^_^)
    我的目的是使用webrequest向上面地址post请求以返回数据,因为他的页面使用datagrid及AspNetPager等服务器控件,通过简单的地址栏传参并不能获取datagrid分页数据。在朋友的帮助下在post请求中加入viewstate数据(此串从网页源代码得到后需要编码)获取成功。
    如下:
    http://www.sdxsw.com/Book/ShowBookList.aspx?__EVENTTARGET=_ctl0%3Apager&__EVENTARGUMENT=38&__VIEWSTATE=dDw1MzgxO3Q8O2w8aTwwPjs%2BO2w8dDw7bDxpPDY%2BOz47bDx0PDtsPGk8MD47aTwyPjs%2BO2w8dDx0PDs7bDxpPDA%2BOz4%2BOzs%2BO3Q8cDxwPGw8UmVjb3JkY291bnQ7Q3VzdG9tSW5mb1RleHQ7Q3VycmVudFBhZ2VJbmRleDs%2BO2w8aTwxMTI4PjsmbmJzcFw76K6w5b2VIFw8Zm9udCBjb2xvcj1yZWRcPlw8Ylw%2BMTEyOFw8L2JcPlw8L2ZvbnRcPiDmnaEgLCDlvZPliY0gXDxmb250IGNvbG9yPXJlZFw%2BXDxiXD42XDwvYlw%2BXDwvZm9udFw%2BIC8gXDxmb250IGNvbG9yPWJsdWVcPlw8Ylw%2BMzhcPC9iXD5cPC9mb250XD4g6aG1O2k8Nj47Pj47Pjs7Pjs%2BPjs%2BPjs%2BPjs%2B为获取第38分页数据
      

  4.   

    Hi wj2929,请教一下您,为什么这样做?这样做有什么好处?
    Thanks.