【问题标题】:Call VisibleOnPageLoad of RadWindow Client Side调用 RadWindow 客户端的 VisibleOnPageLoad
【发布时间】:2013-04-11 15:01:04
【问题描述】:

我有一个应用程序使用带有内容页面和用户控件的 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


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    相关资源
    最近更新 更多