0

这是我的场景:

我有一个 VB ASP "NextPageButton"、VB "NextPageButton" on click 方法,以及如下所示的 Javascript "#Next" 函数。单击时,此 ASP“NextPageButton”将调用“NextPageButton”方法,该方法显示一个消息框,询问用户“在继续下一页之前是否要保存?” (在此方法中调用 goToRequestedPage() 时完成)。然后,在用户响应后,用户应该可以通过如下所示的Javascript“Next”功能进入BR(BookReader)的下一页。但是,我只能让 ASP "NextPageButton" 调用它的 VB "NextPageButton" 方法,而不是 Javascript "#Next" 函数。

// 这里是 VB ASP "NextPageButton":

<asp:Button ID="NextPageButton" runat="server" Text="Next Page" Height="24px" />

// 这是单击 ASP“NextPageButton”时调用的“NextPageButton”VB 方法 //

Protected Sub NextPageButton_Click(sender As Object, e As EventArgs) Handles NextPageButton.Click
        Dim TransAdapter As New TransTableAdapter
        ' Increment global current page number by one page
        gbCurrentPage += 1
        'autoSaveCheckBoxStatus()
        goToRequestedPage()
End Sub

//这里是Javascript:

<script type="text/javascript">
$().ready(function () {

// 具体来说,这里是我想在“NextPageButton”方法完成后在“on //click”调用的Javascript“Next”函数,如上所述:(这调用了 //RenderBR() 函数)

 $("#Next").click(function () {
                if (splitType == "v") {
                    RenderBR('#CenterLeft', gbCurrentPage + 1);
                }
                else {
                    RenderBR('#CenterTop', gbCurrentPage + 1);
                }
            });
});
</script>

*问题:如何在用户回答 MsgBox 问题后让 ASP "NextPageButton" 调用 VB "NextPageButton" 方法,然后调用 Javascript "#Next" 函数???

4

2 回答 2

0

如果我没记错的话,当你点击它时NextPageButton会调用该NextPageButton_Click函数,所以你只需要在用户点击按钮后调用Javascript。为此,我建议进行以下更改:

创建一个将从您的按钮客户端单击以及服务器端调用的函数:

function functionCall()
{
    if (splitType == "v") 
    {
        RenderBR('#CenterLeft', gbCurrentPage + 1);
    }
    else
    {
        RenderBR('#CenterTop', gbCurrentPage + 1);
    }
}

这从您的按钮单击调用它:

$("#Next").click(function () 
{
    functionCall();
});

现在我们在您的点击事件执行后从服务器调用它:

Protected Sub NextPageButton_Click(sender As Object, e As EventArgs) Handles NextPageButton.Click
        Dim TransAdapter As New TransTableAdapter
        ' Increment global current page number by one page
        gbCurrentPage += 1
        'autoSaveCheckBoxStatus()
        goToRequestedPage()
        ScriptManager.RegisterStartupScript(this, this.GetType(), "functionCall", "functionCall();", true);
End Sub

但是,这将在PostBack发生后执行。如果该goToRequestedPage()方法执行重定向,则不会执行此 javascript 代码。

于 2013-07-31T20:38:33.740 回答
-2

你不能。
当您在 Webforms 中进行回发时,您已经失去了客户端。说它确实有效 - javascript 应该在即将关闭的页面上运行还是神奇地出现在即将到来的页面上?

阅读 Aspnet 中的事件顺序
http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx
http://hemantg.blogspot.se/2010/12/aspnet- event-sequence.html
并重新考虑。

不幸的是,我不能给你比这更好的答案。

于 2013-07-31T20:37:47.913 回答