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

时间:2016-05-06 14:32:06

标签: parameter-passing default-value visual-studio-lightswitch

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

  

我希望将Add/Edit屏幕上的字段默认为在EmployeeID屏幕上选择的Browse

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

之间建立关系
  

目前,我可以使用下面的代码默认CreateDate值,但第二行未按我的意愿返回EmployeeID

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屏幕设计师

1 个答案:

答案 0 :(得分:1)

一个选项是编辑AddNewRecord命令栏按钮的点击操作,并使用“自己编写方法”'沿着以下几行实现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;
        }
    });
};

此方法允许您在显示AddEdit屏幕之前使用所选的员工ID(从“浏览”屏幕)初始化新的时间表记录。