我们建立了一个网站,其中包含我们所有任务/页面的控件。 每个控件都有一个页面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吗?或者在这里做点什么?
答案 0 :(得分:1)
您需要将return
添加到LinkButton 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>