我以前也看到了这个问题,但没有答案似乎为我工作。这是我的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完全回发与用户控件自定义事件
发布评论