2013-03-31 26 views
1

我嘗試使用ASP.NET和VB創建動態Web解決方案。OnClientClick不適用於asp.net和vb.net

我的網頁看起來是這樣的:

<div id="menu" style="position:relative;text-align:center"> 
     <asp:PlaceHolder runat="server" id="PHimg1" /> 
     <asp:PlaceHolder runat="server" id="PHimg2" /> 
     <asp:PlaceHolder runat="server" id="PHimg3" /> 
     <br /> 
     <asp:PlaceHolder runat="server" id="PHimg4" /> 
     <asp:PlaceHolder runat="server" id="PHimg5" /> 
     <asp:PlaceHolder runat="server" id="PHimg6" /> 
     <br /> 
     <asp:PlaceHolder runat="server" id="PHimg7" /> 
     <asp:PlaceHolder runat="server" id="PHimg8" /> 
     <asp:PlaceHolder runat="server" id="PHimg9" /> 
</div> 

VB的部分是這樣的:

Public Class index 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Load_Main() 
End Sub 

Protected Sub Load_Main() 
    Dim img1 As New ImageButton() 
    Dim img2 As New ImageButton() 
    Dim img3 As New ImageButton() 
    Dim img4 As New ImageButton() 
    Dim img5 As New ImageButton() 
    Dim img6 As New ImageButton() 

    img1.ImageUrl = "./resources/EssenTrinken.png" 
    img1.OnClientClick = "Load_Eating()" 

    img2.ImageUrl = "./resources/Einkaufen2-black.png" 
    img3.ImageUrl = "./resources/Special-black.png" 
    img4.ImageUrl = "./resources/KosmetikWellness.png" 
    img5.ImageUrl = "./resources/KulturGeschichte.png" 
    img6.ImageUrl = "./resources/Unterhaltung2-black.png" 

    PHimg1.Controls.Add(img1) 
    PHimg2.Controls.Add(img2) 

    PHimg4.Controls.Add(img3) 
    PHimg5.Controls.Add(img4) 

    PHimg7.Controls.Add(img5) 
    PHimg8.Controls.Add(img6) 
End Sub 

Protected Sub Load_Eating() 
    Dim img1 As New ImageButton() 
    Dim img2 As New ImageButton() 
    Dim img3 As New ImageButton() 
    Dim img4 As New ImageButton() 
    Dim img5 As New ImageButton() 
    Dim img6 As New ImageButton() 

    img1.ImageUrl = "./resources/zurueck.png" 
    img2.ImageUrl = "./resources/Bars2.png" 
    img3.ImageUrl = "./resources/Cafe.png" 
    img4.ImageUrl = "./resources/FastFood2.png" 
    img5.ImageUrl = "./resources/Restaurant.png" 
    img6.ImageUrl = "./resources/Baeckerei.png" 

    PHimg1.Controls.Add(img1) 
    PHimg2.Controls.Add(img2) 

    PHimg3.Controls.Add(img3) 
    PHimg4.Controls.Add(img4) 

    PHimg5.Controls.Add(img5) 
    PHimg6.Controls.Add(img6) 
End Sub 

End Class 

我想,如果我在的ImageButton的一個點擊的頭版動態地改變孔appereance無加載新的孔頁面。所以我爲此定義了幾個PlacHolder。

如果我運行webapp,但如果按下按鈕,功能無法正常工作。

我查源,發現這個標籤:

<input type="image" name="ctl03" src="./resources/EssenTrinken.png" onclick="Load_Eating();" /> 

什麼是錯的這個解決方案?

+0

「Load_Eating()」的JavaScript代碼是什麼? – MikeSmithDev

+0

沒有JavaScript代碼。我想使用已定義的vb.net代碼。這不是一種合法的方式嗎? – Kingalione

+2

'OnClientClick'適用於JavaScript。 'Click'用於vb.net – MikeSmithDev

回答

1

每個按鈕和重置價值如果你想從這樣做代碼後面,那麼你需要添加Click事件處理函數:

Protected Sub Load_Main() 
    Dim img1 As New ImageButton()  
    AddHandler img1.Click, AddressOf Img1Click 
    'rest of your code 

然後有一些函數可以做你想要的:

Private Sub Img1Click(ByVal sender As Object, ByVal e As ImageClickEventArgs) 
    'some code 
End Sub 

注意,這將導致回發。如果您希望在不重新加載頁面且不使用JavaScript的情況下動態更改首頁,這會讓您感到困惑......

+0

感謝你解決了我的問題。但是,這種設置比真正的客戶端支持還是每個vb交互服務器都是雙面的? – Kingalione

+1

VB是服務器端代碼... – MikeSmithDev

+0

我想我在這裏評論它自動取消選擇它。我會選擇它不要擔心:D – Kingalione

1

添加到您的Page_Load支票IsPostBack

if Not IsPostBack Then 
    Load_main() 
End If 

這會防止你的Page_Load方法重新對Image_click事件

相關問題