我正在使用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;
});
};
答案 0 :(得分:2)
在删除按钮的_canExecute()方法中,只需输入以下代码:
myapp.MyScreen.DeleteButton_canExecute = function (screen) {
return screen.GiftRegistries.selectedItem != null;
};
您还可以通过选中或取消选中所选按钮的属性中的“隐藏,如果已禁用”复选框来控制按钮在禁用时是否可见。
答案 1 :(得分:0)
你应该在客户端使用javascript(似乎你提供了javascript代码)。
例如,如果您有名为“DeleteRegistry”的删除按钮:
将以下代码添加到 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字段的注释行,以达到您需要的结果。