问题描述:定义了一个自定义的自动用页用户控件, 里面提供了一个改变类别的函数.在控件中使用了pageload事件
下面使用了二种调用方法:
1. 在其它控件事件中执行control.changelb(lb) 执行的顺序应该是 先执行了pageload ,其它控件事件 ,changelb 所以得到的结果是正确的.
2. 根据参数调用当前页,show.aspx?c=? 然后在pageload中调用control.changelb
其执行过程为:执行自定义控件的 changelb函数,在执行pageload事件.执行分页操作时出现错误,
原认为会先执行pageload ,并且pageload会回发一次,但是不是这样的.在使用参数调用或直接打网址会因为重新调用而不是回发.当调用函数时,会先执行函数,然后触发一些自动的事件如pageload.
所以问题出现在,changelb的结果被pageload覆盖了.
回发问题:当回发的url是 带查询参数的将不认为是回发了,将作为新的请求.
下面使用了二种调用方法:
1. 在其它控件事件中执行control.changelb(lb) 执行的顺序应该是 先执行了pageload ,其它控件事件 ,changelb 所以得到的结果是正确的.
2. 根据参数调用当前页,show.aspx?c=? 然后在pageload中调用control.changelb
其执行过程为:执行自定义控件的 changelb函数,在执行pageload事件.执行分页操作时出现错误,
原认为会先执行pageload ,并且pageload会回发一次,但是不是这样的.在使用参数调用或直接打网址会因为重新调用而不是回发.当调用函数时,会先执行函数,然后触发一些自动的事件如pageload.
所以问题出现在,changelb的结果被pageload覆盖了.
回发问题:当回发的url是 带查询参数的将不认为是回发了,将作为新的请求.
本文探讨了自定义ASP.NET自动用页用户控件中的类别更改函数问题。详细介绍了两种调用方法的区别及存在的问题:控件事件中调用与URL参数调用。指出在使用URL参数调用时,由于执行顺序问题导致页面回发时类别更改结果被覆盖。
202

被折叠的 条评论
为什么被折叠?



