首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

禁用viewstate后,ItemDataBound无效的有关问题,以及小弟我现在奇怪的解决办法,大家来看看

2012-08-02 
禁用viewstate后,ItemDataBound无效的问题,以及我现在奇怪的解决方法,大家来看看大家新年好!这两天公司放

禁用viewstate后,ItemDataBound无效的问题,以及我现在奇怪的解决方法,大家来看看
大家新年好!
这两天公司放假,我在家里没事,想把以前做的一个网站的性能优化一下
于是乎禁用的viewstate,结果发现Repeater的ItemDataBound事件根本不执行。
在网上查了一下,答案都是不保存viewstate,是无法触发itemdatabound事件。

刚才,我偶然间把这个Repeater做进了用户控件(WEBUserControl)中,然后在主页面上调用,发现Repeater的itemdatabound事件居然有效了
即使在用户控件中设置单独关闭viewstate,似乎也没有什么影响
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserControlFriendList.ascx.cs"
Inherits="ASCX_UserControl_UserControlFriendList" EnableViewState="false" %>

因为我对于.net运行机理也不是搞得太明白,大家都有遇到过这种情况吗?

[解决办法]
启用ViewState
[解决办法]
关键是看页面上有没有那么一段冗长的 _VIEWSTATE hedden标签不
[解决办法]
如果你反编译Repeater控件,你会发现Repeater的好多属性都使用ViewState作为自身存储,你想一下,你禁用了ViewState后就会出现问题,在用户控件中你禁用的是用户控件的ViewState而不是Reapeter的ViewState,所以它在自身内部仍然可以使用ViewState作为自身的存储。
[解决办法]
新建一个测试页面,拖入DataList并且配置好数据源机制,此时你会发现设置页面和DataList的EnableViewState属性为false都不会使得ItemDataBound失效。

如果你提问之前自己测试一下就好了,要知道csdn上回复问题时许多人也是不测试的,所以你如果先测试一下可以避免在问题中误导别人。

把你出问题的代码更清楚地说明一下吧!

热点排行