проблемы с обратной передачей родительской страницы после закрытия дочерней модальной формы - PullRequest
1 голос
/ 23 апреля 2019

Я работаю над приложением ASP.NET и столкнулся с проблемой, которую не могу решить. У меня есть родительская форма, которая называется Form1.aspx, которая содержит Telerik RadGrid. При загрузке страницы эта сетка полностью пуста. У пользователя есть возможность добавлять данные, нажимая добавить, в этом случае открывается окно Rad: вот мой код:

<td >
     <input id="btnAdd" runat="server" onclick="showQuestion4()"
      type="button" value="Add" />
</td>

У меня есть RadWindowManager, как это:

<telerik:RadWindowManager ID="RequestsRadWindowManager" runat="server" >
  <Windows>
    <telerik:RadWindow ID="ClientQuestion4" runat="server" Behaviors="Close,Move" 
      EnableEmbeddedSkins="false" Height="300px" Modal="true" OnClientClose="OnClientClose" 
      ReloadOnShow="true" Skin="WebBlue" Width="550px">
    </telerik:RadWindow>
  </Windows>
</telerik:RadWindowManager>

И функция My JS для фактического открытия окна:

function showQuestion4() {
    return window.radopen("mdClientQ4.aspx?mode=add", "ClientQuestion4", "return false;");
    return false;
}

Моя дочерняя форма открывается правильно, и позволяет пользователю вводить и сохранять данные. Как только пользователь нажимает СОХРАНИТЬ, я делаю вставку и затем вызываю это:

RadAjaxManager1.ResponseScripts.Add("cancelAndClose();")

Что соответствует этому коду JS:

function cancelAndClose() {
var oWnd = GetRadWindow();
oWnd.close();
}

function GetRadWindow() {
  var oWindow = null;
  if (window.radWindow) oWindow = window.radWindow;
  elseif(window.frameElement.radWindow)oWindow=window.frameElement.radWindow;
  return oWindow;
}

Итак, этот код вызывается, моя дочерняя форма успешно закрывается, и теперь фокус возвращается к моей родительской форме, которая была открыта в фоновом режиме.

То, что происходит здесь, - это то, что у меня есть полностраничная запись в родительской форме, и моя главная цель - ПРЕДОТВРАТИТЬ ЭТО.

Мой RadGrid в данный момент находится на панели обновления, с mode="conditional". Триггер для этого Update Panel представляет собой выпадающий список, который активировал кнопку ADD, которая, в свою очередь, позволяет пользователю открывать дочернюю форму и вводить данные.

Я пытался отключить это postback в течение нескольких часов, но безрезультатно, я понятия не имею, что я делаю неправильно.

Я установил return false; в своей функции showQuestion4() Javascript, но она все еще получает обходные пути, и родительская страница загружается полностью.

Моя цель для этого состоит в том, чтобы закрыть дочернюю форму, и чтобы в исходной форме НЕ происходило POST BACK, я просто хочу перезагрузить UpdatePanel с помощью RadGrid, который отображал бы информацию, введенную пользователем в Child. форма.

Любая помощь или советы будут с благодарностью. Я был бы более чем рад показать больше кода, если это необходимо.

EDIT: Согласно комментарию Nikkis ниже, я удалил runat="server" из btnAdd, однако моя родительская форма все еще проходит постбэк

1 Ответ

1 голос
/ 24 апреля 2019

Публикация в качестве ответа, поскольку, похоже, вы выяснили это из нашего комментария.

Проверьте UpdatePanel и убедитесь, что любой код, вызываемый при закрытии клиента, запускается, поскольку вы хотите его запустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...