使用ASP按钮调用VB方法然后调用Javascript函数'On Click'

时间:2013-07-31 19:41:38

标签: javascript asp.net vb.net visual-studio-2012

以下是我的情景:

我有一个VB ASP“NextPageButton”,点击方法上的VB“NextPageButton”,以及下面显示的Javascript“#Next”函数。单击时,此ASP“NextPageButton”将调用显示msgbox的“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 () {

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

通过点击按钮调用它:

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

现在我们在执行click事件后从服务器调用它:

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代码。

答案 1 :(得分:-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
并重新思考。

不幸的是,我无法给你一个比这更好的答案。