调用RadWindow客户端的VisibleOnPageLoad

问题描述 投票:0回答:2

我有一个使用带有内容页面和用户控件的 MasterPage 的应用程序。在一个用户控件中,我们有另一个用户控件(我知道,这是一种 Inception 类型的东西)。此用户控件使用 RadAjaxManagerProxy 并具有生成 RadWindow 的控件。一切正常:窗口显示一些 RadGrid,其中填充了数据库中的字段,然后我关闭窗口。

所有这些都是通过

RadWindow1.VisibleOnPageLoad = true
在某些服务器端事件中完成的。关闭窗口后,我无法设置
RadWindow1.VisibleOnPageLoad = false;
,因此当我单击另一个触发 AJAX 事件的控件(在本例中显示不同的 RadWindow)时,之前的 RadWindow 会弹出。

在应用程序的其他部分,我们通过 RadWindow 的 OnClientClose 方法将参数传递给服务器,我们用该方法调用 RadAjaxManager 的服务器端 OnAjaxRequest 事件。这会触发服务器端事件,我可以设置属性,如下所示:

JS:

function WindowClose(sender, args) {
    SendRequest("ArgumentName");
}

function SendRequest(requestName) {
    var ajaxManager = $find("<%= RadAjaxManagerMain.ClientID %>");

    ajaxManager.ajaxRequest(requestName);
}

C#:

protected void RadAjaxManagerMain_AjaxRequest(object sender, AjaxRequestEventArgs args)
{
    if (args.Argument == "ArgumentName")
    {
        RadWindow1.VisibleOnPageLoad = false;
    }
}

但是由于我使用的是 RadAjaxManagerProxy,因此不支持 RadAjaxManager 的 OnAjaxRequest 方法。

我为此提出了一些选择:

  • 在客户端设置VisibleOnPageLoad,我在任何论坛或文档中都找不到。
  • 将某种不同的事件传递到服务器,以便我可以设置属性。

或者也许有一些我不知道或没有想到的完全不同的东西。我对任何选择都持开放态度。我已经有一个在关闭窗口时触发的 Javascript 方法,我只是想不出一种方法可以让窗口保持关闭而不进行完整的回发。

如何防止我的 RadWindow 在另一个 AJAX 请求上打开?

c# asp.net .net telerik radwindow
2个回答
1
投票

刚刚找到解决方案。它就在我面前。在 RadWindowManager 上设置

EnableViewState="false"
可防止此问题发生。很简单。希望它对将来的人有所帮助。


0
投票

我使用了所有可能的方法来解决这个问题,但这帮助我解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.