Werken met bewerkbare bereiken

Werken met bewerkbare bereiken

Werken met bewerkbare bereiken

Deze gids toont hoe je bewerkbare bereiken kunt inspecteren en verwijderen – de regio’s die de functie “Restrict Editing” van Word uitsluit van de algemene bewerkingsbeperking van een document, eventueel beperkt tot een specifieke gebruiker of groep – in Aspose.Words FOSS voor .NET. Een bewerkbaar bereik wordt ingesloten in de documentboom door een paar markerknopen, EditableRangeStart and EditableRangeEnd, en wordt als geheel beschreven door de EditableRange facade-klasse.


Bewerkbare bereiken vinden in een document

Er is geen enkele verzamelings-eigenschap voor bewerkbare bereiken; vind ze door de knooppuntboom te doorlopen. CompositeNode.GetChildNodes(nodeType, isDeep) met NodeType.EditableRangeStart retourneert elk EditableRangeStart knooppunt in het document (of in een subtree, als het wordt aangeroepen op een knooppunt anders dan Document). Elke EditableRangeStart.EditableRange eigenschap geeft vervolgens het bijbehorende EditableRange façade-object terug.


De EditableRange façade

EditableRange beschrijft een enkel bewerkbaar bereik als geheel: Id identificeert het, SingleUser geeft optioneel een specifieke gebruiker aan die het mag bewerken, en EditorGroup (een EditorType waarde) geeft optioneel in plaats daarvan een bewerkingsgroep aan. EditableRangeStart en EditableRangeEnd retourneren het paar markerknopen dat het bereik in het document omsluit. EditableRange.Remove() verwijdert het bewerkbare bereik – waardoor de vrijstelling van de bewerkingsbeperking voor dat gebied wordt opgeheven, zonder de documentinhoud erin te verwijderen.


De markerknopen: EditableRangeStart en EditableRangeEnd

EditableRangeStart en EditableRangeEnd zijn verzegelde Node subklassen die de grenzen van een bereik in de inhoudsstroom van het document markeren. EditableRangeStart.Id en EditableRangeEnd.Id identificeren het bereik; EditableRangeStart.EditableRange bereikt het facade-object direct, en EditableRangeEnd.EditableRangeStart gaat terug naar de bijbehorende startmarker. Als gewone knooppunten ondersteunen beide de standaard Node leden — ParentNode, Document, PreviousSibling, NextSibling en Remove() om de individuele marker te verwijderen.


Toegang beperken met EditorType

EditorType somt de bewerkingsgroepen op die een EditableRange.EditorGroup kan refereren: Administrators, Contributors, Editors, Owners, Everyone, Current, None en Unspecified (ook beschikbaar als Default, een alias voor Unspecified).


Tips en best practices

  • Gebruik GetChildNodes(NodeType.EditableRangeStart, true) met isDeep: true om bewerkbare bereiken overal in het document te vinden, niet alleen onder de directe kinderen van een knooppunt.
  • Lees EditableRange.SingleUser en EditorGroup samen om te bepalen voor wie een bereik is beperkt — een bereik kan beperkt zijn tot één specifieke gebruiker, één bewerkingsgroep, of geen van beide.
  • Roep EditableRange.Remove() (op de facade) aan in plaats van de EditableRangeStart en EditableRangeEnd markerknopen afzonderlijk te verwijderen, zodat beide uiteinden van het bereik consequent worden opgeschoond.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Er zijn geen bewerkbare bereiken gevonden, zelfs al heeft het document beperkte bewerkingZoekopdracht gebruikte de standaard (ondiepe) GetChildNodes aanroepGeef isDeep: true door zodat de zoekopdracht de volledige documentsubboom bestrijkt
Het verwijderen van een bewerkbaar bereik verwijdert de ingesloten tekst nietEditableRange.Remove() verwijdert alleen de bereikmarkeringen en de bewerkingsvrijstelling, niet de inhoud ertussenDit is verwacht – verwijder de inhoud apart als deze ook verwijderd moet worden
EditorGroup wordt gelezen als Unspecified, hoewel Word een benoemde groep toontDe editor-groep van het bereik in het brondocument wordt gemapt naar EditorType.Unspecified/Default in plaats van naar een van de benoemde groepswaardenControleer SingleUser ook – het bereik kan in plaats daarvan beperkt zijn tot een individuele gebruiker

FAQ

Hoe vind ik alle bewerkbare bereiken in een document?

Roep Document.GetChildNodes(NodeType.EditableRangeStart, true) aan, lees vervolgens de EditableRange eigenschap op elk EditableRangeStart knooppunt dat wordt geretourneerd.

Hoe kan ik zien wie een bepaald bereik mag bewerken?

Lees EditableRange.SingleUser (een specifieke gebruiker) en EditableRange.EditorGroup (een EditorType bewerkingsgroep) op het facade-object.

Hoe verwijder ik een bewerkingsbeperking van een deel van een document?

Roep Remove() aan op het EditableRange façade-object voor dat bereik.

Wat is het verschil tussen EditableRangeStart.EditableRange en EditableRangeEnd.EditableRangeStart?

EditableRangeStart.EditableRange bereikt het facade-object dat de volledige reeks direct beschrijft. EditableRangeEnd.EditableRangeStart gaat terug naar het overeenkomstige start-markeringsknooppunt, van waaruit EditableRange vervolgens kan worden bereikt.


API Reference Samenvatting

Klasse / EnumBeschrijving
EditableRangeFacade voor één bewerkbaar bereik: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartNode die het begin van een bereik markeert; Id, EditableRange
EditableRangeEndNode die het einde van een bereik markeert; Id, EditableRangeStart
EditorTypeEnum van bewerkingsgroepen: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

Zie ook

 Nederlands