0

我在 Ext.Net 中有这个按钮:

<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 中创建它,但没有找到如何添加 de 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);
}

如何将直接事件添加到按钮?

提前致谢!!

4

2 回答 2

0

解决这个问题的最简单方法可能是配置您的Buttonin 标记(或代码隐藏),然后查看页面。用于呈现 ExtJS 的 JavaScript 配置脚本Button可通过查看页面的 html 源代码(查看 > 源代码)获得。

然后,您可以使用该 extjs 配置脚本并根据需要进行修改。

另一种选择,我会推荐这个而不是使用 aDirectEvent是调用 a [DirectMethod]。您可以[DirectMethod]直接从任何客户端事件处理程序调用,并且设置起来更容易。

希望这可以帮助。

于 2012-05-26T05:56:43.727 回答
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;
          }
     });
 },
});
于 2012-09-04T22:15:40.480 回答