我的ASCX控件上的Javascript没有将我重定向到新的页面/控件

时间:2016-12-23 10:55:16

标签: javascript jquery asp.net vb.net redirect

我们建立了一个网站,其中包含我们所有任务/页面的控件。 每个控件都有一个页面ID(pid),然后我们点击相关链接转到该页面。

在我的页面上,我有一个加载该页面数据的按钮,但我想在代码运行之前重定向人员。

从本质上讲,客户端登录并开始排序。单击“添加到购物车”按钮后,在代码隐藏将所有商品加载到购物车之前,如果用户未选择下订单,则必须对其进行警告并相应地重定向。

到目前为止,在我的按钮上,我有:

<asp:LinkButton CssClass="Button" Font-Bold="True" Text="Load Lines" runat="server" 
ID="btnVerifyOrder" OnClientClick='checkIsOptedIn();' />

javascript是:

 <script language="javascript" type="text/javascript">
    function checkIsOptedIn() {
        var str = window.location.href;
        var url = str.substring(0, str.length - 2);
        var value = $('#<%=hidIsOptIn.ClientID %>').val();

        if (value == "False") {
            var question = confirm("You are not opted in for ordering to continue processing this. If you would like to view and complete the form, please click OK. Or click Cancel reload the page");
            if (question == true) {
                url = url + "6";
                window.location.replace(url); //this will not work
                window.location.href = url; //or this
            } else {
                url = url + "32";//the current pid of the control. So they just refresh here at the beginning, but this doesn't refresh the page at the top either
                window.location.href = url;
            }
        }
    }
</script>

按钮点击后面还有代码:

 Protected Sub btnVerifyOrder_Click(sender As Object, e As EventArgs) Handles btnVerifyOrder.Click
        Page.MaintainScrollPositionOnPostBack = True
        'Do code work then
        GenerateClaimLines()
 End Sub

现在,当我在本地主机上运行页面并以未选择的客户端身份登录时,我看到该消息并单击“确定”,但未加载正在调用的控件。相反,当前页面加载了代码,就像客户端可以下订单一样。

有人可以解释为什么页面不会重定向。我试图去主机地址,谷歌,任何东西,但我不会被重定向。此外,如果他们单击取消,页面应该重定向到同一页面,但在进程的开始,所以没有加载任何内容,只有默认数据。然而,这也无法加载。

我必须从jscript函数返回一个变量boolean吗?或者在这里做点什么?

1 个答案:

答案 0 :(得分:1)

您需要将return添加到LinkBut​​ton OnClientClick

OnClientClick="return checkIsOptedIn();"

然后你的JavaScript函数必须返回一个布尔值。

<script language="javascript" type="text/javascript">
function checkIsOptedIn() {
    var value = $('#<%=hidIsOptIn.ClientID %>').val();

    if (value == "False") {
        //other code
        return false;
    } else {
        return true;
    }
}
</script>