2017-04-18 42 views
0

我見過使用onClientClick的各種示例,以避免回發。 但是,我不想要這個。我想在vb.net代碼中包含鏈接按鈕的鏈接,並防止頁面單擊時執行回發。原因是當我的頁面加載時,它會設置默認的show()和hide()div顯示,當新窗口打開時,它會丟失頁面上用戶的當前位置。那麼我怎麼能做到這一點,而不會導致主頁面重置?onClick vb.net功能,但防止回發的JavaScript

我試過OnClientClick="javascript:return false;",但阻止用戶點擊鏈接按鈕。

我自己也嘗試AutoPostBack = "false"並沒有奏效

嘗試其他的方式爲好。 ......沒有運氣......包括嘗試HyperLink,但那些也給我提出了問題。

<asp:linkbutton ID="aCapShip" runat="server" OnClick="aCapShip_Click" style="text-decoration:none;" > 
    <i class="fa glyphicon glyphicon-plane fa-lg"></i> Cap Shipping <!--<span class="arrow"></span>-->        
</asp:linkbutton> 

的JavaScript

$(document).ready(function() { 

     $("#shipping").show(); 
     $("#Ul2List").hide(); 
     $("#manufacture").hide(); 
     $("#Ul1List").hide(); 
     $("#reList").hide(); 

     ......... 

VB.net

Protected Sub aCapShip_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
    Dim url As String = "http://dummyinfo/dummyinfo/dummyinfo.aspx" 
    Process.Start(url) 

End Sub 
+0

爲了在webform控件上運行服務器上的vb代碼,你必須有一個回傳。否則,你可以直接使用標準html元素(在元素中沒有'runat:server')來調用帶有jquery/javascript的URL。 – ps2goat

+0

所以反正只運行JavaScript show()和hide()一次? @ ps2goat – narue1992

+0

您可以查看更新面板以獲得簡單的實施。這仍然使用視圖狀態,但它可能不是你的問題。一個''允許你打包元素,然後這些元素可以在沒有完全重新加載頁面的情況下進行回發。下面是一個示例,但它可能不是最新版本的.NET您正在使用:https://msdn.microsoft.com/en-us/library/bb398867.aspx – ps2goat

回答

0

所以我的解決辦法是:

VB.net

If Not Page.IsPostBack Then 
     startUp() 
End If 

Public Sub startUp() 
    Response.Write("<SCRIPT LANGUAGE=""JavaScript"">startSort()<" & "/" & "SCRIPT>") 
End Sub 

JavaScript

$(function startSort() { 
     $("#shipping").show(); 
     $("#Ul2List").hide(); 
     $("#manufacture").hide(); 
     $("#Ul1List").hide(); 
     $("#reworkList").hide(); 
}); 
+0

看起來像這樣仍然沒有'工作... – narue1992