我写了一个用户控件,放在一个页中使用。我用最经典的方式,通过IsPostBack来判断是否回传。实际上,我在这个控件的一个控件的itemBind事件中需要纪录一个用户选定的纪录的id,并且存放在session中。用户选定记录我通过一个button来实现的,按下button的时候,我把选择的item的序号存放在一个全局变量中,然后发起DataBind,在itemDataBind中判断当前序号是否与全局变量相同,如果相同,那么,就在Session中存放当前item对应的数据库记录中的id字段。结果,每次按下button,Page_Load执行了2次,一次是IsPostBack=true,还有一次IsPostBack是false的,我用跟踪调试观察的,结果,Session中始终只能存放第一个记录,因为那个全局变量在页面生成的时候初始化为0了。如果是IsPostBack,那么会执行数据控件的事件冒泡。就能正确的设置序号。但是,执行了2次,第二次就没法正确设定了,因为它不执行事件冒泡了,就像页面第一次装载的状态。这样Session的保留值就被冲掉了。更加郁闷和奇怪的是,客户端输出是正常的,就好像执行了一次Page_Load(我改变了选定的item的文字颜色)。奇怪死了。谁能告诉我,这是怎么回事?
所以有多次调用.
你写了2个这个吧,呵呵