造成的UpdatePanel完全回发与用户控件自定义事件 [英] Updatepanel causing full postback with usercontrol custom events
问题描述
我以前也看到了这个问题,但没有答案似乎为我工作。
这是我的UpdatePanel的部分(内侧hi.ascx):
I have seen this question before, but none of the answers seems to work for me. This is my updatePanel section (inside hi.ascx):
<asp:UpdatePanel runat="server" ID="upUL" UpdateMode="Conditional" >
<ContentTemplate>
...
<Angel:Pager id="pager" runat="server" OnPageClicked="Pager_PageSelected" />
<!--End of control div-->
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lbBlock" />
<asp:AsyncPostBackTrigger ControlID="lbUnblock" />
<asp:AsyncPostBackTrigger ControlID="pager" EventName="PageClicked" />
</Triggers>
</asp:UpdatePanel>
现在,这是Pager.ascx.vb内code:
Now this is the code within the Pager.ascx.vb:
Public Delegate Sub ClickPage(sender As Object, e As PageClickedEventArgs)
Public Event PageClicked As ClickPage
Public Class PageClickedEventArgs
Inherits EventArgs
Public Property PageNumber() As Integer
End Class
...
Protected Sub rpPaging_Click(ByVal sender As Object, ByVal e As CommandEventArgs)
Dim pageNum As Integer
Integer.TryParse(e.CommandArgument.ToString(), pageNum)
If (pageNum <> 0) Then
Dim args As New PageClickedEventArgs
args.PageNumber = pageNum
RaiseEvent PageClicked(sender, args)
End If
'SelectNewPage(pageNum)
End Sub
最后,这是hi.ascx.vb页面上我的code:
And finally, this is my code on the hi.ascx.vb page:
Public Sub Pager_PageSelected(sender As Object, ByVal e As Paging.PageClickedEventArgs)
BindData(False, e.PageNumber)
End Sub
正如我在标题中说。当我从pager.ascx引发一个事件,它会导致一个完整的回发(伟大工程,但我希望它是在阿贾克斯)。
此像的UpdatePanel和lbBlock内lbUnblock其他控件(LinkButtons),是伟大的工作,且不会导致完全回发!
请请帮助我。我花了太多的时间和似乎没有任何工作!
谢谢,
然
As I stated in the title. When I raise an event from the pager.ascx, it causes a full post back(and works great but I wanted it to be in Ajax).
The other controls(LinkButtons) within this updatepanel like lbBlock and lbUnblock , are working great and not causing full postback!
Please please help me. I spent too much time on it and nothing seems to work!
thanks,
Ran
推荐答案
这解决了这个问题:
Protected Sub rpPaging_onItemCreated(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
Dim lb = e.Item.FindControl("lbPage")
If lb IsNot Nothing Then _
ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(lb)
End Sub
显然,一个中继器内的控制不会自动注册自己...
所以我需要他们每个人添加到的ScriptManager!
Apparently, Controls within a repeater would not register themselves automatically... So i needed to add each one of them to the scriptmanager!
希望这有助于有人在那里...
Hope it would help to someone out there...
这篇关于造成的UpdatePanel完全回发与用户控件自定义事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!