RadWindow: открытие окон из C # - PullRequest
2 голосов
/ 16 мая 2011

Необходимо открыть веб-страницу в radWindow из события нажатия кнопки. Попытка сделать это со стороны клиента, но, появляется, а затем сразу исчезает. Я думаю, что нажатие кнопки вызывает обратную передачу на сервер ... Поэтому в настоящее время я пытаюсь решить эту проблему с помощью кода на стороне сервера (C #), опубликованного ниже.

Проблема: Нужно открыть рад окна без добавления их в коллекцию окон или удалить их из коллекции окон при закрытии. Они не удаляются из коллекции окон при закрытии окна rad. Это приводит к тому, что одно и то же окно открывается столько раз, сколько нажата новая кнопка. Первый щелчок открывает одно окно, второй раз, когда нажимается новая кнопка, открываются два окна и т. Д ... Есть идеи?

C # - Открытие нескольких страниц

    RadWindow newWindow = new RadWindow();
    newWindow.NavigateUrl = "WebPage.aspx";
    newWindow.Top = Unit.Pixel(22);
    newWindow.VisibleOnPageLoad = true;
    newWindow.Modal = true;
    newWindow.Left = Unit.Pixel(0);
    newWindow.Height = 530;
    newWindow.Width = 1000;
    winMgr.Windows.Add(newWindow);

JavaScript - Опубликовать вопрос? Страница открывается и сразу исчезает.

    var oManager = '<%=winMgr.ClientID %>';
    var oManager = window.radopen("WebPage.aspx", null);
    oManager.setSize(1000, 530); //Width, Height
    oManager.center();
    oManager.SetActive();

Спасибо за вашу помощь!

Ответы [ 3 ]

3 голосов
/ 15 декабря 2011

В соответствии с решением Элисон, окно рада отображается при нажатии кнопки; но снова исчезает сразу. Я попытался с помощью кода ниже. В моем случае все работает нормально.

<script type="text/javascript">
    function openRadWin()
    {
        radopen("http://www.google.com", "RadWindow1");
    }
</script>
<asp:Button ID="Button1" Text="Show Window" runat="server" OnClientClick="openRadWin();"  />

Надеюсь, кому-то это пригодится.

2 голосов
/ 17 мая 2011

Сначала - основы :) Вы хотите открыть RadWindow на клиенте (через JavaScript) или на сервере?

Случай 1 - на клиенте: Элисон права - если вы хотите открыть RadWindow на клиенте (и нет никакого серверного события, подключенного к этому элементу обратной передачи), вынужно отменить постбэк.Это можно сделать с помощью OnClientClick = "return myFunction ();" и " return false; " в конце самой функции (как предложила Элисон), или:

OnClientClick = "myFynction (); return false;"

Когда щелчок клиента отменяется, обратной передачи быть не должно.

Случай 2 - на сервере: RadWindow показывается с сервера путем установки VisibleOnPageLoad в true .Обратите внимание, что RadWindow / RadWindowManager, тем не менее, сохраняет свое состояние во всех обратных передачах, включая все свойства на стороне сервера, включая VisibleOnPageLoad.При этом, если вы хотите показать RadWindow только один раз, вам также нужно установить EnableViewState = false для RadWindowManager , который вы используете.

2 голосов
/ 16 мая 2011

Вам нужно вернуть false после нажатия вашей кнопки.

Попробуйте настроить кнопку / JavaScript на что-то похожее на следующее:

Кнопка (aspx)

<asp:Button ID="btnDoSomething" runat="server" Text="Do Something" OnClientClick="return myFunction();" />

JavaScript

function myFunction() {
    var oManager = window.radopen("WebPage.aspx", null);
    oManager.setSize(1000, 530); //Width, Height
    oManager.center();
    oManager.SetActive();
    return false;
}
...