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 でそれを作成する方法を見つけましたが、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

おそらくこれを理解する最も簡単な方法はButton、マークアップ(またはコードビハインド)を構成してからページを表示することです。ExtJSのレンダリングに使用されるJavaScript構成スクリプトButtonは、ページのhtmlソースを表示することで利用できます([表示]> [ソース])。

次に、そのextjs構成スクリプトを取得し、必要に応じて変更できます。

別のオプションであり、を使用するよりもこれをお勧めします。DirectEventを呼び出すこと[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 に答える