Обновить radgrid после внесения изменений в базу данных?

#c# #database #tabs #refresh #radgrid

#c# #База данных #вкладки #обновить #radgrid

Вопрос:

У меня есть страница, которая содержит radgrid. Сетка содержит данные, полученные из базы данных. Он также содержит кнопку добавить запись, которая откроет новую вкладку для пользователя, чтобы заполнить детали для новой записи. После добавления записи пользователь закроет открытую вкладку.

Добавленная новая запись не отображается в таблице, пока пользователь не обновит страницу. Есть ли какой-либо способ обновить / повторно связать данные в сетке, когда пользователь закрывает вкладку «Добавить запись» или если пользователь переключается обратно на вкладку с сеткой? Или есть способ обновить данные в сетке после внесения каких-либо изменений в базу данных, даже если это не активная вкладка (обновление в фоновом режиме)?

Я пытался использовать функцию, но, похоже, она не работает. Есть идеи, почему?

  $(window).focus(RefreshGrid());
        function RefreshGrid() {
            var masterTable = $find("<%= rgQualifiedLeads.ClientID %>").get_masterTableView();
            masterTable.rebind();
        }
  

Ответ №1:

Я думаю, вам нужно будет повторно привязать свою сетку, чтобы она обновила данные о вашем действии / событии «Закрыть открытую вкладку».

 function RefreshGrid() {
    var masterTable = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
    masterTable.rebind();
}
  

RadGrid1 это имя вашей таблицы.

Вот ссылка на эту функцию: Повторная привязка

Используйте RadAjaxPanel или RadAjaxManager, как в этом примере:

 <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
    <AjaxSettings>  
        <telerik:AjaxSetting AjaxControlID="YourTable"> 
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl ControlID="YourTable" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager>
<telerik:RadGrid ID="TableUtil" ...
  

Комментарии:

1. «Действие будет выполнено на сервере с помощью ajax-запроса в случае, если сетка ajaxified с помощью RadAjaxManager / RadAjaxPanel или ASP:UpdatePanel». Что это значит? Должна ли radgrid находиться внутри панели?