2016-07-09 18 views
0

Ich bin ein Azure Portal Erweiterung zu entwickeln, die eine editierbare Gitterplatte enthält. die Klinge des Gitters ist aus einer Auswahleinrichtung geöffnet und daher enthält einen Parameter Provider.Kann nicht bearbeitbare Raster in Azure-Portal Erweiterung aktualisieren

Das Gitter mit dem Bearbeitungsumfang des Parameters Anbieter initialisiert ist, die eine beobachtbare Array ist, und für die Reihen Bearbeitung aktiviert, und neue Zeilen eingefügt wird.

Wenn ich versuche, um das Raster zu aktualisieren, Änderungen an vorhandenen Zeilen werden nicht gezeigt und die Schaffung neue Linie ergibt eine leere Zeile, wie unten:

Empty line when adding new row

Ich sehe keine Fehler in die Konsole während des Debuggens.

Hier ist, wie ich das Raster initialisiert:

private _initialize(container: MsPortalFx.ViewModels.PartContainerContract): void { 
    var extensions: number = MsPortalFx.ViewModels.Controls.Lists.Grid.Extensions.EditableRow | MsPortalFx.ViewModels.Controls.Lists.Grid.Extensions.ContextMenuShortcut, 
     extensionsOptions: MsPortalFx.ViewModels.Controls.Lists.Grid.ExtensionsOptions<DataModels.IItem, DataModels.ISelectionItem>, 
     viewModel: MsPortalFx.ViewModels.Controls.Lists.Grid.ViewModel<DataModels.IItem, DataModels.ISelectionItem>; 

    // Set up the editable extension options. 
    extensionsOptions = this._createExtensionsOptions(); 

    // Create the grid view model. 
    viewModel = new MsPortalFx.ViewModels.Controls.Lists.Grid.ViewModel<DataModels.IItem, DataModels.ISelectionItem>(
     container, 
     null, 
     extensions, 
     extensionsOptions); 
    viewModel.showHeader = true; 
    viewModel.columns(this._columns); 
    viewModel.rowAdd =() => { 
     // code that extension authors need to execute when a row is added should go here. 
    }; 
    this.editableGrid = viewModel; 
} 

private _createExtensionsOptions(): MsPortalFx.ViewModels.Controls.Lists.Grid.ExtensionsOptions<DataModels.IItem, DataModels.ISelectionItem> { 
    return <MsPortalFx.ViewModels.Controls.Lists.Grid.ExtensionsOptions<DataModels.IItem, DataModels.ISelectionItem>>{ 
     editableRow: { 
      // Supplies editable items to the grid. 
      editScope: this.parameterProvider.editScope, 
      // put the new row at the top. 
      placement: MsPortalFx.ViewModels.Controls.Lists.Grid.EditableRowPlacement.Bottom, 
      // Create no more than 5 new rows. 
      maxBufferedRows: 5, 
      // Allow the modification of existing items. 
      allowEditExistingItems: true, 
      // Allow the creation of new items. 
      allowEditCreatedItems: true, 
      // Track the valid status 
      valid: ko.observable<boolean>() 
     } 
    }; 
} 

ich mehrere Beispielblätter von editierbaren Raster überprüft haben, aber identifizieren konnte nicht, was mache ich falsch.

Antwort

0

Das Problem war, dass ich nicht die editScopeMetadataType Eigenschaft des Parameters Anbieter festgelegt hat, die für die Bestimmung der Bearbeitungsumfang des Unternehmens Firmenname:

this.parameterProvider = new MsPortalFx.ViewModels.ParameterProvider<DataModels.IItem[], KnockoutObservableArray<DataModels.SchemaItem>>(container, { 

    // This was missing. 
    editScopeMetadataType: wrapperTypeMetadataName, 

    mapIncomingDataForEditScope: (incoming) => { 
     return ko.observableArray(incoming); 
    }, 

    mapOutgoingDataForCollector: (outgoing) => { 
     return outgoing(); 
    } 
});