How to Move Selection to a Position in ASP.NET MVC DOCX Editor
19 Aug 20263 minutes to read
Using the select API in the selection module, you can set the cursor position to anywhere in the document.
Selects content based on start and end hierarchical index
The hierarchical index will be in the below format.
sectionIndex;blockIndex;offset
The following code snippet illustrates how to select using the hierarchical index.
// Selection will occur between the provided start and end offset
this.documentEdContainerIns.documentEditor.editor.insertText("Welcome");
// The below code will select the letters "We" from the inserted text "Welcome"
this.documentEdContainerIns.documentEditor.selection.select("0;0;0", "0;0;2");The following table illustrates the hierarchical index in detail.
| Element | Hierarchical Format | Explanation |
|---|---|---|
| Move selection to Paragraph | sectionIndex;blockIndex;offset Ex: 0;0;0 |
It moves the cursor to the start of the paragraph. |
| Move selection to Table | sectionIndex;tableIndex;rowIndex;cellIndex;blockIndex;offset Ex: 0;0;0;0;1;0 |
It moves the cursor to the second paragraph which is inside the first row and cell of the table. |
| Move selection to header | pageIndex;H;sectionIndex;blockIndex;offset Ex: 1;H;0;0;0 |
It moves the cursor to the header on the second page. |
| Move selection to Footer | pageIndex;F;sectionIndex;blockIndex;offset Ex: 1;F;0;0;0 |
It moves the cursor to the footer on the second page. |
Get the selection start and end hierarchical index
Using [startOffset], you can get the start hierarchical index which denotes the start index of the current selection.
Similarly, using [endOffset], you can get the end hierarchical index which denotes the end index of the current selection.
The following code snippet illustrates how to get the selection start and end offset on selection changes in the document.
@Html.EJS().DocumentEditorContainer("container").Created("onCreated").EnableToolbar(true).Render()
<script>
var documenteditor;
var container;
function onCreated() {
var documenteditorElement = document.getElementById("container");
container = documenteditorElement.ej2_instances[0];
documenteditor = container.documentEditor;
// Event gets triggered on selection change in document
container.selectionChange = function () {
//Get the start index of current selection
let startOffset = container.documentEditor.selection.startOffset;
//Get the end index of current selection
let endOffset = container.documentEditor.selection.endOffset;
};
}
</script>Selects the content based on left and top position
Here, you can specify the [selection settings] to select the content based on the left and top position.
x denotes the left position, y denotes the top position, and extend denotes whether to extend or update the selection.
Check the below code sample for reference.
this.container.documentEditor.selection.select({ x: 188.4814208984375 , y: 662.00005, extend: true });