调用RadWindow客户端的VisibleOnPageLoad

时间:2013-04-11 15:01:05

标签: c# asp.net .net telerik radwindow

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

所有这些都是在某些服务器端事件中使用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请求中打开?

1 个答案:

答案 0 :(得分:0)

刚刚找到解决方案。它就在我面前。在RadWindowManager上设置EnableViewState="false"可防止此问题发生。很简单。希望它能帮助将来的某个人。