2013-03-27 30 views
1

我有一個asp:Button這樣的控件;使用OnClick事件和PostBackUrl屬性asp:按鈕

<asp:Button ID="btnPayCC" CssClass="paymentButton" runat="server" Text="ONAYLA" 
OnClientClick="if(!doPostBack()) return false; frmMaster.target='_blank'" 
PostBackUrl="http://www.google.com" OnClick="btnPayCC_Click" /> 

doPostBack javascript的功能是;

function doPostBack() 
{ 
    __doPostBack('<%= btnPayCC.ClientID %>', ''); 
    return true; 
}; 

當我點擊按鈕,然後它會打開新的頁面(google.com)如我所願, 但不要回發到按鈕控件的OnClick事件。

什麼問題? 我該如何解決它?

+2

你只能回發到一個地方。您要麼發回「返回」到谷歌網址,要麼發回自己的網頁。兩者都不可能沒有單獨的請求。 – 2013-03-27 15:07:22

+0

感謝@JoelEtherton,我想知道有沒有其他解決方案來完成這項工作(使用doPostBack vs.調用c#函數)? – 2013-03-27 15:09:58

+0

我會建議張貼回你的本地頁面,做任何你需要的驗證,然後重新發布到谷歌。它們是獨立的行爲,因此不應相互依賴。 – 2013-03-27 15:43:06

回答

4

我有同樣的問題。我通過在Button的onClick事件結束處添加一個Response.Redirect(「url」)並從按鈕中刪除PostbackUrl屬性來解決此問題,以便使用autopostback指向相同的url。 IE:

protected void Button_Click(object sender, EventArgs e) 
{ 
    //do your button click events here 
    Response.Redirect("~/url.aspx"); 
} 

<asp:Button ID="Button" runat="server" CausesValidation="false" OnClick="Button_Click">