1.在UC中定义一属性,然后在PAGE中在给VIEWSTATE["USERNAME"]赋值后,然后把此值赋值给UC中这个属性。
2。无法得到所有的字段的值,因为BUTTONCLICK是在回送中处理的,这时候DATAGRID的DATASOURCE已经为空,除非你把DATASOURCEVIEWSTATE起来,不过很耗资源,最好SESSION起来,在BUTTONCLICK中拿来用就是了
3。在<%page cache="true"%>
   好像是这样的,具体指令请查VS.NET文档

解决方案 »

  1.   

    多谢大哥的支持,有以下问题:
    1、如果在UC中不能取出页面上的VIEWSATATE的值,那么在PAGE上也不用写VIEWSTATE,
    具体想问一下,UC中是否能取出页面上VIEWSTATE的值,具体的实现方法?3、这样放入缓冲区是放入服务器上IIS的缓冲区还是其他的?我只听别人说过要将页面放入IIS的缓冲区,不知道能否实现,大哥这样的方法是否将其放入IIS的缓冲区?其他问题多谢支持,稍后会给你分的。
      

  2.   

    1、可以在UC中直接用ViewState["UserName"]获取;
    2、可以把数据表的主键设为DataGrid的DataKeyField,在点击选择按钮后获取此主键值,然后再执行一个SQL语句或存储过程根据该主键从数据库中获取对应的所有记录;
    3、要使用页面缓存,可以在aspx页或用户控件(ascx)页面最上部加上如下指令:
    <%@ OutputCache Duration="100" VaryByParam="none" %>
    有关该指令的更详细说明,请查看.net文档。
      

  3.   

    TO:陕北吴旗娃大哥
    首先多谢你的支持,对您的回答有以下问题:1、UC中用此方法不能取出值 ,他是NULL值,已做过测试;
    2、再取一次肯定可以,只要标识出DATASOURCE的关键字就可以,现在问题是不再取,如何
    能得到DATAGRID的DATASOURCE的对应记录的字段值?能否告知?
      

  4.   

    1.UC中你是什么时候取值的?在哪个阶段,一定要确保VIEWSTATE["USERNAME"]在主页面赋值后再在你的UC中取值,不然为NULL,比如,你在UC的INIT阶段取值,而在PAGE在LOAD阶段赋值给VIEWSTATE["USERNAME"],不为NULL才怪
    2。没办法得到,这就是WEB编程,一次请求就是一次请求,不会在两次请求之间保持状态,
    除非你自己去用状态技术保持!
      

  5.   


    2.用页面传参,在另一页重新定义数据源----------------------------
    有兴趣一起做:
    http://expert.csdn.net/Expert/topic/2248/2248544.xml?temp=.6086389