使用 Lightswitch HTML 客户端在屏幕之间传递数据

Pass Data between screens with Lightswitch HTML client

我的应用程序从 Browse 屏幕开始,您可以在其中选择员工。然后您将被带到另一个 Browse 屏幕,该屏幕显示该员工的记录。在第二个浏览屏幕上,我有一个按钮可以打开 Add/Edit 屏幕。

I would like to default a field on my Add/Edit screen to be the EmployeeID which was selected on the first Browse screen

我的应用程序使用视图来填充具有不同列表的 Browse 屏幕,但 Add/Edit 直接引用 table。出于这个原因,我一直无法在我的应用程序 DataSources

之间建立关系

Currently I can default the CreateDate value with the code below but the second line is not returning the EmployeeID as I want

myapp.AddTimesheetRecord.created = function (screen) {
    // Write code here.
    screen.TBG_KeepInTimesheet.CreateDate = new Date;
    screen.TBG_KeepInTimesheet.EmployeeID = myapp.activeDataWorkspace.WPEBrattleData.TBG_V_KeepInTimeSheet_Details.EmployeeID;
};

这是一个Image of my Add/Edit屏幕设计器,请注意,当运行使用上面的代码

时,当前EmployeeID将是空白

这是一位Image of my second Browse屏幕设计师

一个选项是编辑您的 AddNewRecord 命令栏按钮的点击动作,并使用 'Write my own method' 按照以下行实现 AddNewRecord_Tap 功能:

myapp.ViewEmployeeProjects.AddNewRecord_Tap_execute = function (screen) {
    myapp.showAddTimesheetRecord(null, {
        beforeShown: function (addScreen) {
            var newItem = new myapp.TBG_KeepInTimesheet();
            newItem.EmployeeID = screen.TBG_V_KeepInTimeSheet_Employee.EmployeeID;
            addScreen.TBG_KeepInTimesheet = newItem;
        }
    });
};

此方法允许您使用选定的员工 ID(从您的浏览屏幕)来初始化您的新时间-sheet记录,然后再显示您的添加编辑屏幕。