Lightswitch:自定义按钮不调用方法

Lightswitch: Custom button doesn't call method

我正在尝试向 Lightswitch HTML 客户端中的视图添加一个新的自定义按钮。

在该视图的自定义代码中,该按钮的 'execute' 方法定义如下(使用右键单击上下文菜单生成签名以确保其正确)。

/// <reference path="~/GeneratedArtifacts/viewModel.js" />

myapp.OLTP_AddEditLRIDetailsSet.Details_postRender = function (element, contentItem) {
    $("[data-ls-tap='tap:{data.shell.okCommand.command}']").hide(); // Hide Ok Button
    $("[data-ls-tap='tap:{data.shell.cancelCommand.command}']").hide(); // Hide Cancel Button
};


myapp.OLTP_AddEditLRIDetailsSet.Test_Method_execute = function (screen) {
    console.log('execute');
};

第一种方法隐藏默认按钮,第二种方法是按钮的执行代码。在 Web 客户端中单击按钮时,不会调用该方法,而是持续加载屏幕(如下所示)。

从 AddEditMainTable 视图调用 AddEditLRIDetails 视图。在程序的上下文中,MainTable 实际上是 LRIDetails 的父级。调用视图的代码如下:

myapp.OLTP_AddEditMainTable.AddLRI_execute = function (screen) {
    myapp.showOLTP_AddEditLRIDetailsSet(null, {
        beforeShown: function (OLTP_AddEditLRIDetailsSet) {
            var newLRI = new myapp.LRIDetailsSet();
            newLRI.MainTable = screen.MainTable1;
            OLTP_AddEditLRIDetailsSet.LRIDetailsSet = newLRI;
        },
        afterClosed: function () {
            // Refreshes the content so that the filter queries are applied
            screen.OLTP_LRIDetailsSet.refresh();
            screen.OLTP_LRIDetailsSet.load();
        }
    });
};

如何解决这个连续加载问题,以便实际调用按钮方法?

最后我重新创建了视图及其父视图。沉没 ~20 小时试图以其他方式修复它。我对在 Lightswitch 工作的建议是不要害怕撕掉它并重做,这样可以节省时间