问题描述
我有一个LinkButton,它确实运行良好,但是当我在LinkButton中添加href时,它会将我重定向到该链接,而无需触发OnClick函数。
data:='2020-07-08T01:11:02-0700'
startDate,err := time.Parse(time.RFC3339,data.(string))
if err != nil {
fmt.Println("err is",err)
return
}
如何同时触发OnClick和href?
解决方法
LinkButton
具有名称为PostbackUrl
的属性,而不是使用href
,请使用此属性。
要避免所有麻烦,请在我的点击处理程序中调用Response.Redirect('url')
,以便它以更简洁的方式完成这两项工作。
更新
不幸的是,您无法使用Response.Redirect()
方法在新标签页中打开,但是您可以编写javascript
代码以在新标签页中打开网址。参见:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"openurl","window.open('http://www.mywebsite.com','_blank');",true);
或者,您可以像这样简单地做到这一点:
Response.Write("<script>window.open('http://www.mywebsite.com','_blank')</script>");
,
asp:LinkButton没有href标签。
您需要服务器端使用OnClick,客户端需要OnClientClick
<asp:LinkButton ID="ad_main_form"
runat="server"
OnClick="ad_button_Click"
OnClientClick="javascript: window.open('https://stackoverflow.com');">
Click me
</asp:LinkButton>
C#后面的代码:
protected void ad_button_Click(object sender,EventArgs e)
{
// your code
}
您也可以通过这种方式进行处理,并向OnClientClick()提供自定义JavaScript函数。请参阅Navigate(url)函数。后面的代码保持不变。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="YourProject.WebForm1" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<script type="text/javascript">
function Navigate(url) {
javascript: window.open(url);
}
</script>
<body>
<form id="form1" runat="server">
<div>
<asp:LinkButton ID="ad_main_form"
runat="server"
OnClick="ad_button_Click"
OnClientClick="Navigate('https://stackoverflow.com')"
CausesValidation="False">
Click me
</asp:LinkButton>
</div>
</form>
</body>
该代码已经过测试,可以正常工作!