2011-02-13 54 views
3

我正在學習JavaScript客戶端腳本語言和我正在使用ASP JS ..我不知道當我編譯的代碼,它顯示的JavaScript到ASP頁

COMPILATION ERROR:Compiler Error Message: CS1061: 'ASP.default_aspx' does not contain a definition for 'popup' and no extension method 'popup' accepting a first argument of type 'ASP.default_aspx' could be found (are you missing a using directive or an assembly reference?)

這裏是我的代碼:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WEB_test_app._Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Shuraat Web ki</title> 
    <script type ="text/javascript"> 
    function popup() 
    { 
    alert("popup!!"); 
    }  
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="Button1" runat="server" Text="Button" OnClick ="popup()"/> 

     <script type ="text/javascript"> 
     document.write("Abid"); 
     </script> 
    </div> 
    </form> 
</body> 
</html> 
+0

有人可以編輯代碼:/ ..請.. – 2011-02-13 08:34:35

+0

我不知道如何編輯..:/抱歉 – 2011-02-13 08:35:01

回答

5

令人困惑的是客戶端和服務器端事件。 popup()函數是用Javascript編寫的,並在客戶端運行,但OnClick是一個服務器端事件,因此它的處理程序在服務器上運行,並且必須用您的頁面語言(C#)編寫。 popup()在這方面沒有意義。

您可以使用ClientClick事件來處理按鈕點擊客戶端。請注意,你應該爲了避免回發到服務器從處理程序返回false

<asp:Button ID="Button1" runat="server" Text="Button" 
    OnClientClick ="popup(); return false;" /> 
1

您必須分配popup()到事件OnClientClick,而不是Click這樣的:

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick ="popup()"/> 

您的問題背後的原因是,當運行時看到OnClick它試圖用C#/ VB.Net(代碼隱藏)方法(顯然不存在)來處理該事件,我們通過附加事件OnClientClick添加到您的JavaScript的方法。

1

OnClick - 是服務器端的點擊處理程序。如果您想調用javascript函數,請使用OnClientClick