2013-11-22 4 views
1

Приветствую вас, дорогие коллеги!Как остановить Telerik RadWindow от перегрузки на следующей PostBack 2

Подсказка.

У меня есть ситуация - на ней есть компонент RadWindows RadButton, нажав кнопку в компоненте RadGrid RadWindows, установлен на Visible = true; Но после PostBack и формы RadWindows исчезает. Но в RadWindows все остается, поскольку оно было изменено для перезагрузки.

Вопрос: Как предотвратить перезагрузку страницы.

Кто не знает, каковы компоненты Rad Teleric.

Исходный код может бросить, если это поможет.

Спасибо, С уважением!

ответ

1

Set DestroyOnClose = "true", чтобы предотвратить повторное открытие окна после закрытия или обратной передачи. Похоже, вы можете установить для свойства Visible значение true, используя код на стороне сервера. Это плохая практика, которая приводит к таким проблемам, как вы описываете. RadWindows следует открывать с помощью клиентских методов.

На стороне сервера этот код используется для открытия окна с клиентской стороны с использованием метода клиентской стороны RadWindow.Show с установленным значением DestoryOnClose равным true. Вы можете настроить строку сценария, если хотите использовать метод RadWindow.Open(), чтобы передать URL-адрес окну.

private void ShowWindow() 
    { 
     string script = "function f(){$find(\"" + YourRadWindow.ClientID + "\").show(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);"; 
     ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", script, true); 
    } 
0

Рассмотрим его открытия с JavaScript, это позволит вам отказаться от использования этих ненужных постбэки: http://www.telerik.com/help/aspnet-ajax/window-programming-opening.html. Использование OnClientClicking для RadButton: http://blogs.telerik.com/aspnet-ajax/posts/12-08-10/migrating-onclientclick-handlers-from-asp-button-to-telerik-s-asp-net-ajax-button.aspx.

Вы также можете использовать AJAX для предотвращения полных обратных передач, которые будут утилизировать (и, таким образом, скрыть) RadWindow: http://www.telerik.com/help/aspnet-ajax/radwindow-ajaxifying.html.

Прочтите это, чтобы узнать, как его открыть с сервера, если вам нужно. Если вы установите VisibleOnPageLoad в true, он будет повторно отображаться после обратной передачи, поэтому вам нужно будет только позаботиться о том, чтобы свойство возвращалось к false, когда вам нужно: http://www.telerik.com/community/forums/aspnet-ajax/window/opening-radwindow-from-the-server.aspx.

Смежные вопросы