基本上,我有一个AddEdit屏幕(从浏览屏幕加载),从中保存一个实体。单击保存图标时,实际实际已保存,但仍然弹出“保存操作失败”消息,这会阻止浏览屏幕刷新包含已保存实体列表的表。
看起来,变化不会持续存在或其他什么。
答案 0 :(得分:0)
添加/编辑屏幕在插入/更新之前验证数据。
如果更新了包含DateTime列的现有记录(例如:注册DateTime,记录创建日期时间等),并且使用LightSwitch的dateTime选择器控件,则可能存在验证错误。
LightSwitch的dateTime选择器无法读取某些DateTime格式,因此无法分配值(来自DB)来控制。 通常它会显示验证错误,但是如果将控件可见性设置为false,则永远不会看到由隐藏控件引起的错误。
除了IE之外,大多数浏览器都会忽略错误。
这是一种错误。
解决方案是暂时显示屏幕上的所有隐藏控件并检查插入/更新功能。您将看到导致该错误的错误和控制。
您可以将控件类型更改为文本或编辑,或手动为其指定值(在代码下方)。
您可以编写自己的方法来插入/更新记录。看看下面的代码:
myapp.BrowseProducts.EditProduct_execute = function (screen) {
myapp.showAddEditProduct(null, {
beforeShown: function (editNewProductScreen) {
var selectedProduct = screen.products.selectedItem;
editNewProductScreen.product= selectedProduct;
},
afterClosed: function () {
screen.products.refresh();
}
});
};
在" afterClosed"之后添加刷新解决数据刷新问题的函数。