Collaborative review API
Review tracked document changes
Review a modern mutual NDA, inspect every revision as structured data, and switch identities to continue the legal review as another contributor.
Current document author
New edits are attributed to this identity.
AUTHOR
Q
qa@textcontrol.comTrack changes is enabled
Review overview
The collection updates as the document is revised.
LOADING
All changes0
Inserted0
Deleted0
Authors0
The Proofing ribbon and built-in Tracked Changes sidebar are opened automatically.
Select a revisionChoose an item below or move the caret into tracked text.
Selected revision
Change
INSERTED
No changed text
Author-
Changed-
Number-
Highlight-
Revision timeline
Select a change to activate it in the document and inspect its metadata.
0 CHANGES
Reading tracked changes from the document...
Ready to tryUse the controls above to interact with this demo.
What this demonstrates
Revisions remain first-class document objects
TX Text Control visually marks collaborative edits while exposing every revision through the JavaScript API. Applications can identify who changed which text, navigate revisions, and build custom accept-or-reject workflows without parsing document markup.
Enable tracking
TXTextControl.setIsTrackChangesEnabled
Revision collection
TXTextControl.trackedChanges
Revision metadata
TrackedChange.getUserName / getText / getChangeKind
Review decision
TrackedChangeCollection.remove
How it works
TXTextControl.setIsTrackChangesEnabled(true) enables redlining for subsequent edits. The identity supplied through the Razor setting TextControlSettings.UserNames is stored with each new TrackedChange.
TXTextControl.trackedChanges contains the revisions in the active text part. The demo combines getCount and elementAt with asynchronous getters such as getUserName, getChangeTime, getStart, and getLength to build the revision timeline.
TrackedChange.setActive(true) activates a selected revision in the editor. For directional navigation, TrackedChangeCollection.getItem locates the next or previous change relative to the current input position.
TrackedChangeCollection.remove(change, true) accepts a revision. Passing false rejects it: inserted text is removed and deleted text is restored. In both cases the review decision removes the revision marker from the collection.
Changing the author requires a new editor configuration. The demo therefore saves the current document in InternalUnicodeFormat, reloads the page with another UserNames value, and restores the document so review state is preserved.
TXTextControl.trackedChanges.elementAt(0, change => {
change.getUserName(author => console.log(author));
change.getText(text => console.log(text));
change.getChangeKind(kind => console.log(kind));
});
TXTextControl.trackedChanges.remove(
selectedChange,
true,
removed => refreshTimeline());
@Html.TXTextControl().TextControl(settings => {
settings.Dock = DockStyle.Fill;
settings.UserNames = new[] { currentAuthor };
}).Render()
NuGet packages
TXTextControl.TextControl.Core.SDK
34.0.4
Provides the core document model and server-side document processing APIs.
dotnet add package TXTextControl.TextControl.Core.SDK --version 34.0.4
Provides the browser-based TX Text Control document editor and JavaScript API.
dotnet add package TXTextControl.Web --version 34.4.0
TXTextControl.Web.DocumentEditor.Backend
34.4.0
Hosts the WebSocket-based backend used by the browser document editor.
dotnet add package TXTextControl.Web.DocumentEditor.Backend --version 34.4.0