2012-03-22 3 views
0

я получил эту ошибку при попытке пересвязать сетки: (Объект не поддерживает свойство или метод «_get_eventHandlerList»

родительскую страницу (где сетка)

function refreshGrid(arg) { 
    if (!arg) { 
     $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind"); 
    } 
} 


<telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true"> 
    <Windows> 
     <telerik:RadWindow ID="RadWindow1" runat="server" Width="700px" Height="500px" Title="Details du ticket" 
      Skin="WebBlue" Behaviors="Close, Move" Modal="true"> 
     </telerik:RadWindow> 
    </Windows> 
</telerik:RadWindowManager> 
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" ClientIDMode="AutoID"> 
    <AjaxSettings> 
     <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> 
      <UpdatedControls> 
       <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> 
      </UpdatedControls> 
     </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 

.cs:

protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) 
    { 
     if (e.Argument == "Rebind") 
     { 
      RadGrid1.MasterTableView.SortExpressions.Clear(); 
      RadGrid1.MasterTableView.GroupByExpressions.Clear(); 
      RadGrid1.Rebind(); 
     } 
    } 

JS функция в окне (когда я закрыть его, я хочу сетки в родительской странице, которая будет обновляться)

function CloseDialog(args) { 
    GetRadWindow().close(); 
    GetRadWindow().BrowserWindow.refreshGrid(args); 
    return true; 


} 

ответ

1

Вместо того чтобы делать все это, попробуйте этот простой пример:

В radWindow вы получите одно событие клиента называется OnClientClose, вы можете назвать это и перепривязываете вашу сетку легко. Ниже то, что я сделал:

<telerik:RadWindow runat="server" Behaviors="Maximize,Close,Move" ID="editorWindow" 
    VisibleStatusbar="false" Width="800px" ReloadOnShow="true" ShowContentDuringLoad="false" 
    OnClientClose="OnWindowClose" Modal="true" Height="500px" /> 

Вот JS Функция:

function OnWindowClose(sender, eventArgs) { 
    var MasterTable = gridID.get_masterTableView(); 
    MasterTable.rebind(); 
} 

Примечания: на pageLoad из родительской страницы я назначил gridID как этот var gridID = $find('<%=radGrid.ClientID%>'). Вы также можете найти/получить сетку непосредственно в функции OnWindowClose, так как мой сценарий был немного другим.

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