LightSwitch隐藏删除按钮,直到记录被选中

本文关键字:记录 隐藏 删除 按钮 LightSwitch | 更新日期: 2023-09-27 17:50:27

我使用Visual Studio 2013和LightSwitch。我想出了如何创建一个删除记录按钮,它工作得很好。我唯一的问题是在我的主页上,所有的记录都显示。

当页面加载时,the View &编辑按钮只在我选择一条记录时出现。添加和删除总是可见的。问题是,虽然删除功能起作用,但它仅在选择记录时起作用。因此,如果页面加载并单击删除,则会出现错误。我想隐藏删除按钮,直到一个记录被点击。默认情况下,编辑和查看按钮,Lightswitch创建这样做,但是,因为你必须写自己的删除功能,我还没有弄清楚如何做到这一点。

这是一个我正在使用的c#的例子,它工作得很好,提供了一个记录被选中…

myapp.BrowseGiftRegistries.DeleteRegistry_execute = function (screen) {
    screen.GiftRegistries.deleteSelected();
    return myapp.commitChanges().then(null, function fail(e) {
        myapp.cancelChanges();
        throw e;
    });
};

LightSwitch隐藏删除按钮,直到记录被选中

在delete按钮的_canExecute()方法中放入以下代码:

myapp.MyScreen.DeleteButton_canExecute = function (screen) {
    return screen.GiftRegistries.selectedItem != null;
};

您还可以通过选中或取消选中所选按钮属性中的"禁用时隐藏"复选框来控制按钮在禁用时是否可见。

您应该在客户端使用javascript(似乎您已经提供了javascript代码)。

例如,如果你有一个名为' deleterregistry '的删除按钮:

将下面的代码添加到BrowseGiftRegistries.lsml.js

myapp.BrowseGiftRegistries.created = function (screen) {
    screen.findContentItem('DeleteRegistry').isEnabled = false;
    //screen.findContentItem('DeleteRegistry').isVisible = false;
};
// Function created by clicking List( Gift Registries)->properties window->
// ->Actions->Item tap->None->edit execute code
myapp.BrowseGiftRegistries.GiftRegistry_ItemTap_execute = function (screen) {
   screen.findContentItem('DeleteRegistry').isEnabled = true;
   //screen.findContentItem('DeleteRegistry').isVisible = true;
};
// Modification of your function
myapp.BrowseGiftRegistries.DeleteRegistry_execute = function (screen) {
    screen.GiftRegistries.deleteSelected();
    screen.findContentItem('DeleteRegistry').isEnabled = false;
    //screen.findContentItem('DeleteRegistry').isVisible = false;
    return myapp.commitChanges().then(null, function fail(e) {
        myapp.cancelChanges();
        throw e;
    });
};

你可以将包含isEnabled字段的行替换为包含isVisible字段的注释行,以达到你需要的结果