造成的UpdatePanel完全回发与用户控件自定义事件 [英] Updatepanel causing full postback with usercontrol custom events

查看:178
本文介绍了造成的UpdatePanel完全回发与用户控件自定义事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我以前也看到了这个问题,但没有答案似乎为我工作。
这是我的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其他控件(LinkBut​​tons),是伟大的工作,且不会导致完全回发!



请请帮助我。我花了太多的时间和似乎没有任何工作!



谢谢,

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆