本帖最后由 net_lover 于 2011-11-17 10:15:00 编辑

解决方案 »

  1.   

    Repeater属性设置为EnableViewState="false"时,.aspx.cs中设置的用ViewState保存的属性还能保存到响应页面
    的__EVENTVALIDATION中吗?
    我觉得会保存到__EVENTVALIDATION中的
    -----------------------------------
    Repeater的EnableViewState属性设置与否,都不影响 .aspx.cs中设置的用ViewState保存的属性
    但不是保存在__EVENTVALIDATION中 而是 __VIEWSTATE中
    -----------------------------------
    如果我不设置Repeater属性EnableViewState="false",并把OnInit()方法中的代码写到Page_Load当中,这时,在第二页,点击Repeater中其中一行的Button按钮调试,_PageIndex的值就是2,就能找到我点击的那一行。但是,如果我在页面的第二页,_PageIndex的值为2,点击Repeater中其中一行中的Button按钮调试,这时属性_PageIndex就变成默认的1了,就不能找到我点击的那一行了。
    我想知道为什么?
    看看是否设置_PageIndex的值
      

  2.   

    嗯,就是__VIEWSTATE,我复制错了。
    _PageIndex设置值了,在Page_Load()方法之后,都对_PageIndex重新赋值了,就是为了让它能保存到__VIEWSTATE中。但是点击Repeater中的Button,_PageIndex的值就又变为默认值了,就是这点我不知道为什么?
    如果把Repeater属性设置为EnableViewState="false"时,就没问题了
      

  3.   

    传参数的方法很多啊
    <input type=hidden >
    url都可以传PageIndex的
      

  4.   

    哎呀呀 看着蛋疼如果纯粹是为了分页 就用AspNetPager吧
      

  5.   

    hidden是主要是客户端js和服务器之间的交互,用hidden还要在js中获取值,太麻烦了
      

  6.   

    你的代码没涉及到任何js代码。怎么在客户端取值的?你用ViewState,不还是<input type="hidden"吗?倒是更增加了服务器的负担,需要编码解码的过程
      

  7.   

    可能吧,呵呵
    我就是想试试,在Repeater设置EnableViewState="false"情况下,能不能实现对Repeater的分页,和修改,分页可以实现,修改不能,因为点击修改按钮时_PageIndex变为默认值了,这点我不太明白?
      

  8.   

    有可能事件的流程和你想的不一样注意一下 IsPostBack
      

  9.   

    IsPostBack里面的代码都注释了,可以不考虑。我是为了保存属性,把属性添加到了Cookie中。我就是想试试在Repeater设置EnableViewState="false"情况下,能不能实现对Repeater的分页,和修改,分页可以实现,修改不能,因为点击修改按钮时_PageIndex变为默认值了,这点我不太明白?
      

  10.   

    你把 _PageIndex 放在 修改的url后面或者按钮的参数不就可以了吗?设置EnableViewState="false"是完全可以的。
      

  11.   

    嗯,这样可以,我还是想知道用ViewState保存的属性_PageIndex点击修改按钮时_PageIndex变为默认值了,是为什么?