| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1615 人关注过本帖
标题:关于gridview的enableviewstate的问题!
只看楼主 加入收藏
hijk1984
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-8-15
收藏
 问题点数:0 回复次数:1 
关于gridview的enableviewstate的问题!
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ApplicationId,LoweredRoleName" DataSourceID="SqlDataSource1" EnableViewState="false">
            <Columns>
                <asp:BoundField DataField="ApplicationId" HeaderText="ApplicationId" ReadOnly="True"
                    SortExpression="ApplicationId" />
                <asp:BoundField DataField="RoleId" HeaderText="RoleId" SortExpression="RoleId" />
                <asp:BoundField DataField="RoleName" HeaderText="RoleName" SortExpression="RoleName" />
                <asp:BoundField DataField="LoweredRoleName" HeaderText="LoweredRoleName" ReadOnly="True"
                    SortExpression="LoweredRoleName" />
                <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
            </Columns>
        </asp:GridView>
……………………………………
……………………………………
<asp:Button ID="Button2" runat="server" Text="Add1" OnClick="Button2_Click" />上面是我的代码,我在点击按钮以后为什么gridview中的数据还有啊……。不是EnableViewState="false"后viewstate就不能保存提交前的数据了吗?我的Page的EnableViewState也设置为false了。
搜索更多相关主题的帖子: gridview 
2008-12-05 09:25
hijk1984
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-8-15
收藏
得分:0 

自己给自己解答吧呵呵!我明白了!
刚开始对EnableViewState这个概念理解的不好,上面那段代码的GridView的绑定操作是在aspx页面中就写好了,
DataSourceID="SqlDataSource1"
如此GridView的绑定操作也不是在Load的if(!IsPostBack)代码段中执行的,所以当页面回传再次刷新页面的时候通过
DataSourceID="SqlDataSource1"
语句还是要重新绑定一次数据,所以仍能够看到数据!
如果把DataSourceID="SqlDataSource1"
这句话去掉,然后放到Load的if(!IsPostBack)代码段中写一个GridView的数据绑定操作,那么就会看到效果了!


下面以Lable为例再简述一下:
情况一:
<asp:Label ID="Label3" runat="server" Text="viewstatetestInit"  EnableViewState="false"></asp:Label>
此时点击提交按钮,无论如何Label的Text都是
viewstatetestInit,这个跟我提出的问题效果是一样的。
情况二:
<asp:Label ID="Label3" runat="server" Text="viewstatetestInit"  EnableViewState="false"></asp:Label>
然后在load事件中写
        if (!IsPostBack)
        {
            this.Label3.Text = "TextHasChanged!";
        }
此时第一次加载Label的Text是TextHasChanged!
提交后Label的Text是viewstatetestInit
这就是EnableViewState="false"的效果。
情况三:
<asp:Label ID="Label3" runat="server" Text="viewstatetestInit"  EnableViewState="true"></asp:Label>
然后在load事件中写
        if (!IsPostBack)
        {
            this.Label3.Text = "TextHasChanged!";
        }

此时第一次加载Label的Text是TextHasChanged!
提交后Label的Text是TextHasChanged
这就是EnableViewState="true"的效果。
2008-12-05 09:47
快速回复:关于gridview的enableviewstate的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016144 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved