2012-05-25 4 views
0

У меня есть эта кнопка в Ext.Net:Ext.net Кнопка с Directevents в ExtJS

<ext:Button ID="BtnEliminar" runat="server" Text="<%$ Resources:BaseLocalizedText, General_BotonEliminar%>" 
    Icon="Delete" ToolTip="<%$ Resources:BaseLocalizedText, General_TooltipBotonEliminar%>" Disabled="true"> 
    <Listeners> 
     <BeforeRender Handler="aceleradorTeclado(this, 'click', LocalizedScript.General_AceleradorTeclado_Eliminar, LocalizedScript.General_AceleradorTeclado_Eliminar_Tooltip);" /> 
     <Render Handler="asignarPermiso(this, 'Eliminar', true);" /> 
     <Click Handler="GridHandler.eliminar();" /> 
    </Listeners> 
    <DirectEvents> 
     <Click Url="~/Terminales/Eliminar/" CleanRequest="true" Complete="GridHandler.refresh()"> 
      <Confirmation ConfirmRequest="true" Title="<%$ Resources:BaseLocalizedText, General_TituloMensaje%>" 
       Message="<%$ Resources:BaseLocalizedText, General_ConfirmacionBorrado%>" /> 
      <ExtraParams> 
       <ext:Parameter Name="Serial" Value="GridHandler.valorColumna('Serial')" Mode="Raw"/>        
      </ExtraParams> 
     </Click> 
    </DirectEvents> 
</ext:Button> 

Я нашел, как я могу крит его в ExtJS, но не нашел, как можно добавить де DirectEvents:

if (validarPermiso('Eliminar')) { 
    topbar.addButton({ 
     id: 'btnEliminar', 
     xtype: 'button', 
     text: LocalizedScript.General_BotonEliminar, 
     iconCls: 'icon-delete', 
     tooltip: LocalizedScript.General_TooltipBotonEliminar, 
     handler: function() { 
      GridHandler.eliminar(); 
     } 
    }); 

    // Combinaciones de teclado 
    aceleradorTeclado(btnEliminar, 'handler', LocalizedScript.General_AceleradorTeclado_Eliminar, LocalizedScript.General_AceleradorTeclado_Eliminar_Tooltip); 
} 

Как я могу добавить прямые события к кнопке?

Спасибо заранее!

ответ

0

Я нашел способ решить его, используя [DirectMethod]. Может быть, может помочь другим.

// Boton Eliminar 
if (validarPermiso('Eliminar')) { 
    topbar.addButton({ 
    id: 'btnEliminar', 
    xtype: 'button', 
    text: LocalizedScript.General_BotonEliminar, 
    iconCls: 'icon-delete', 
    tooltip: LocalizedScript.General_TooltipBotonEliminar, 
    handler: function() { 
      Ext.Msg.confirm(LocalizedScript.General_TituloMensaje, LocalizedScript.General_ConfirmacionBorrado, function (btn) { 
       if (btn == "yes") { 

        // Si existen un registro seleccionado para eliminar 
        if (GridHandler.eliminar()) { 
         // Realiza el llamado al Controller para eliminar 
         Ext.net.DirectMethod.request({ 
           url: GetNewPath(GridHandler.getPathEliminar()), 
           cleanRequest: true, 
           params: GridHandler.getPrimaryKey(GridHandler.getRecord()), 
           success: function (result) { 
            //Ext.Msg.alert('Mensaje', result); 
           },        
           eventMask: { 
            showMask: true, 
            msg: LocalizedScript.General_Mask_Eliminar 
         } 
        }); 
       } 
      } 
      else { 
       return false; 
      } 
    }); 
}, 
}); 
0

Вероятно, самым простым способом было бы сконфигурировать ваш Button в разметке (или в коде), а затем просмотреть страницу. Сценарий настройки JavaScript, используемый для визуализации ExtJS Button, доступен, просмотрев источник html страницы (View> Source).

Затем вы можете использовать этот скрипт конфигурации extjs и при необходимости изменить.

Другой вариант, и я бы порекомендовал его использовать с помощью DirectEvent, звонил [DirectMethod]. Вы можете вызвать [DirectMethod] непосредственно с любого обработчика событий на стороне клиента и немного проще настроить.

Надеюсь, это поможет.

+0

Можете ли вы добавить пример прямого метода или ссылки? – Equiman

+0

Множество образцов в Ext Explorer примеров Explorer, см. Http://examples.ext.net/#/Events/DirectMethods/Overview/ –

+0

С помощью этого DirectMethod ... как я могу отправить параметр «DirectEventArgs e». Функция получает его как: protected void ExportVal (отправитель объекта, DirectEventArgs e) – Equiman