Skip to content

Commit 181fe95

Browse files
committed
feat: 增加 OnPageChangedAsync 回调方法
1 parent ee2daaa commit 181fe95

3 files changed

Lines changed: 26 additions & 19 deletions

File tree

src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
110110
{
111111
Options.Url,
112112
Options.IsFitToPage,
113-
TriggerPagesInit = Options.OnInitAsync != null
113+
TriggerPagesInit = Options.OnInitAsync != null,
114+
TriggerPageChanged = Options.OnPageChangedAsync != null
114115
});
115116

116117
/// <summary>
@@ -168,8 +169,14 @@ public async Task PagesInit(int pagesCount)
168169
/// </summary>
169170
/// <returns></returns>
170171
[JSInvokable]
171-
public Task PageChanging()
172+
public async Task PageChanged(uint pageIndex)
172173
{
173-
return Task.CompletedTask;
174+
_currentPage = pageIndex;
175+
Options.CurrentPage = pageIndex;
176+
177+
if (Options.OnPageChangedAsync != null)
178+
{
179+
await Options.OnPageChangedAsync(pageIndex);
180+
}
174181
}
175182
}

src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -103,23 +103,18 @@ const addEventListener = (pdfViewer, eventBus, invoke, options) => {
103103
}
104104
});
105105

106-
eventBus.on("documentloaded", e => {
107-
console.log(e);
108-
});
106+
eventBus.on("pagechanging", async evt => {
107+
const page = evt.pageNumber;
108+
const el = evt.source.container.parentElement;
109+
const pageNumberEl = el.querySelector(".bb-view-num");
110+
if (pageNumberEl) {
111+
pageNumberEl.value = page;
112+
}
109113

110-
eventBus.on(
111-
"pagechanging",
112-
function (evt) {
113-
const page = evt.pageNumber;
114-
console.log(page);
115-
//const numPages = PDFViewerApplication.pagesCount;
116-
117-
//document.getElementById("pageNumber").value = page;
118-
//document.getElementById("previous").disabled = page <= 1;
119-
//document.getElementById("next").disabled = page >= numPages;
120-
},
121-
true
122-
);
114+
if (options.triggerPageChanged === true) {
115+
await invoke.invokeMethodAsync("pageChanged", page);
116+
}
117+
}, true);
123118
}
124119

125120
function getCanvas(item) {

src/components/BootstrapBlazor.PdfReader/PdfReaderOptions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,9 @@ public class PdfReaderOptions
3838
/// 页面初始化回调方法
3939
/// </summary>
4040
public Func<int, Task>? OnInitAsync { get; set; }
41+
42+
/// <summary>
43+
/// 页面初始化回调方法
44+
/// </summary>
45+
public Func<uint, Task>? OnPageChangedAsync { get; set; }
4146
}

0 commit comments

Comments
 (0)