Как вы модифицируете модальное всплывающее окно из ASP codebehind вместо того, чтобы позволить ему закрыться? - PullRequest
0 голосов
/ 19 мая 2010

Я использую SimpleModal для создания всплывающего окна в приложении ASP.net. Кнопка OK вызывает функцию на стороне сервера - и в зависимости от результатов этой функции я бы хотел изменить всплывающее окно (сделать некоторые элементы видимыми и т. Д.) Вместо того, чтобы закрывать его. Если это слишком сложно, я хотел бы снова открыть всплывающее окно без необходимости повторного нажатия на что-либо. Я просто не уверен, что лучший способ сделать это.

В настоящее время кнопка OK во всплывающем окне выглядит следующим образом:

<asp:ImageButton ID="submitInfoBtn" OnClick="btnSubmitInfo_Click"
           ImageUrl="css/assets/btn_ok.png" runat="server"/>  

и ничего не определено, что говорит о том, что кнопка OK должна закрыть всплывающее окно (кнопка Cancel имеет class = "simplemodal-close", так что я ожидаю, что это будет делать именно это, но не кнопка OK) - любой есть какие-нибудь идеи о том, как лучше всего через это пройти? Заранее спасибо !!

Ответы [ 3 ]

0 голосов
/ 19 мая 2010

Это не так сложно, посмотрите мой код всплывающего окна. Во всплывающем окне есть кнопка «ОК», иногда нажатие кнопки «ОК» изменяет всплывающее окно, иногда нажатие кнопки закрывает окно, есть ли у меня недопонимание?

void OK_click(object sender, EventArgs e)
{
   try
   {
      if (DataIsValid())
      {
        Save();
        this.Page.ClientScript.RegisterStartupScript(typeof(Page), "closeWindow", "<script type='text/javascript'>self.opener=null; self.close();</script>");
      }
      else ErrorLabel.Visible = true;
   }
   catch { ErrorLabel.Visible = true; }

}
0 голосов
/ 22 мая 2010

Вы захотите использовать обратный вызов SimpleModal onShow, чтобы привязать к кнопке ОК, сделать запрос ajax, затем проверить ответ и показать новый контент.

Вы не должны использовать обратный вызов onClose, потому что это просто для анимации закрытия или любой очистки. Вы можете программно закрыть диалоговое окно, когда будете готовы с $.modal.close();

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

Взгляните на демонстрацию просмотра значков flickr (http://www.ericmmartin.com/projects/simplemodal-demos/) для примера того, о чем я говорю.

0 голосов
/ 19 мая 2010

Вам нужно установить обработчик Javascript для кнопки с return false . Увидеть... Как отключить обратную передачу на кнопке asp

Обратите внимание на возвращение false. Это предотвратит обратную передачу.

Теперь вы можете получить любые данные сервера, которые вам нужны, используя Ajax в вашем обработчике кнопок Javascript и использовать JQuery для изменения вашего всплывающего окна.

Кстати, вы также можете использовать JQuery UI Dialog для модальных всплывающих окон. У вас может быть гораздо больше поддержки, используя это.

...