In diesem Beispiel wird gezeigt, wie man die "Arbeitszeittabelle" bzw. die Tabelle "meine Vogänge"
in der PWA generell sperren kann. Dazu wird ein Delegat des Grids benutzt:
GetRecordEditMode
Dieser Delegat wird beim Rendern einer Zeile für jede Zelle der Zeile aufgerufen. Der Delegat wird auch aufgerufen,
wenn eine Zelle ausgewählt wird.
// Hier die Referenzpfade angeben
//...
var lock;
_spBodyOnLoadFunctionNames.push("Main");
function Main() {
lock = new MyGridLock();
}
function MyGridLock() {
var _grid;
var _satellite;
if (window.PJ == null || PJ.AddGridSatelliteInitializationNotifier == null) {
return;
}
PJ.AddGridSatelliteInitializationNotifier
(
function (satellite) {
//Überprüfung, ob "Arbeitszeittabelle"
if (PJ.TimesheetSatellite != null) {
satellite = PJ._NotifySatelliteInitComplete.arguments[0];
_satellite = satellite;
_grid = satellite.GetJsGridControlInstance();
_grid.AttachEvent(SP.JsGrid.EventType.OnCellFocusChanged, CellFocusChangedTimeSheet);
}
//Überprüfung, ob "Meine Vorgänge"
if (PJ.MyTasksSatellite != null) {
satellite = PJ._NotifySatelliteInitComplete.arguments[0];
_satellite = satellite;
_grid = satellite.GetJsGridControlInstance();
_grid.AttachEvent(SP.JsGrid.EventType.OnCellFocusChanged, CellFocusChangedMyTasks);
}
}
);
//Funktionen für "Arbeitszeittabelle"
function CellFocusChangedTimeSheet(eventArgs) {
//schreiben Sie hier Ihren zusätzlichen Code für die "Arbeitszeittabelle"
//z.B. um den Inhalt der Zelle oder das Datum zu erhalten
_grid.SetDelegate(SP.JsGrid.DelegateType.GetRecordEditMode, SetRecordEditMode);
}
//Funktionen für "Meine Vorgänge"
function CellFocusChangedMyTasks(eventArgs) {
//schreiben Sie hier Ihren zusätzlichen Code für "Meine Vorgänge"
//z.B. um den Inhalt der Zelle oder das Datum zu erhalten
_grid.SetDelegate(SP.JsGrid.DelegateType.GetRecordEditMode, SetRecordEditMode);
}
//Sperre des JsGrids
//Aufgerufen im CellFocusChanged Event
function SetRecordEditMode(record) {
return SP.JsGrid.EditMode.ReadOnly;
}
}