0

我在更新面板中使用 RadWindow,例如:

<asp:UpdatePanel ID="mainUpdatePanel" runat="server">
    <ContentTemplate>
        <telerik:RadWindow ID="wndInformation" runat="server" Skin="Default"
                NavigateUrl="../MaterialInformation.aspx"
                Behaviors="Close, Move, Resize, Maximize" Height="500" Width="600">
        </telerik:RadWindow>

并使用 javascipt 调用它:

function OpenSuperSeeding() {
            var wnd = $find("<%= wndInformation.ClientID%>");
            wnd.show();
        }

并在标签中分配:

<asp:LinkButton runat="server" ID="LnkbtnStatistics"
     OnClientClick="OpenSuperSeeding()">

问题是它会立即弹出并关闭吗?为什么?

4

2 回答 2

3

asp:linkbutton 是一个回发元素——这就是 RadWindow 立即关闭的原因。基本上,会发生什么:

  1. 你点击链接按钮

  2. OnClientClick 事件处理程序中的函数被触发并显示窗口

  3. 回发发生并重新加载页面 - 此时,RadWindow 对象被销毁(就像回发上的任何其他动态创建的对象一样)。

为避免这种情况,您需要取消回发:

<asp:LinkButton runat="server" ID="LnkbtnStatistics" Text="Link Button" OnClientClick="OpenSuperSeeding(); return false;"></asp:LinkButton>

于 2011-05-31T06:38:46.590 回答
1

可能是因为 UpdatePanel。您是否尝试将 RadWindow 代码移出 UpdatePanel 代码并查看它是否仍会立即关闭?如果您有 Telerik 套件,您可能会考虑使用他们的 Ajax 控件。它们非常强大,Telerik 通常会在它们相互结合使用时测试它们的控件的兼容性。RadAjaxManager 是一个非常好的控件,它允许对 Ajax 更新进行细粒度控制 -比 UpdatePanel 好得多

于 2011-05-22T12:49:14.407 回答