2010-10-29 30 views
2

我在回發時收到javascript錯誤。代碼如下:在使用__doPostBack()返回時遇到錯誤

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %> 

<!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 id="Head1" runat="server"> 
    <title>Untitled Page</title> 

    <script language="javascript" type="text/javascript"> 

function DoPostBack() 
{ 
    __doPostBack('Button2','My Argument'); 
} 

    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <input type="button" id="Button2" value="Press me" onclick="DoPostBack()" /> 
    </form> 
</body> 
</html> 

我收到以下錯誤:

Line: 13 
Error: Object expected 

我不明白爲什麼這樣的錯誤來了。請幫助...

+0

請注意我正在使用HTML按鈕...不是asp.net按鈕 – HotTester 2010-10-29 07:25:27

+0

@Danil是正確的,'_doPostback'不是一些神奇的不可見函數,它是由ASP.NET在服務器控件位於頁面上時創建的導致回發。你想在這裏做什麼?爲什麼你不能製作一個serverside(asp.net)按鈕? – RPM1984 2010-10-29 08:52:27

+0

@ RPM1984目前的編碼風格無法在應用程序中更改,因爲它是過去7年中的一種,因此我們不能使用asp.net按鈕。 – HotTester 2010-10-29 09:57:00

回答

-1

_doPostBack默認情況下不會創建。它出現在你用autoPostBack = true添加控件或者添加一些帶有按鈕的網格時。 因此,在您的代碼中沒有生成_doPostBack JavaScript。 如果爲實例添加

<asp:DropDownList ID="list" runat="server" AutoPostBack="true"> 
     <asp:ListItem Text="first"></asp:ListItem> 
     <asp:ListItem Text="second"></asp:ListItem> 
    </asp:DropDownList> 

您的代碼將工作。 不知道它是否真的有用代碼:)但是。

2

你可以使用一個隱藏的按鈕做這個任務

Button1.Attributes.CssAttributes.Add("Display","None"); 

隱藏按鈕

後,你可以從JavaScript調用它的點擊功能

document.getElementById('<%=Button1.ClientID%>').click(); 

這將調用的button1_Click上服務器

**請記得將UseSubmitBehaviour=false設置爲ma柯非IE這項工作的瀏覽器

希望幫助:)不是默認創建

1

__doPostBack。如果頁面沒有導致回發的控件,那麼ASP.NET不會創建/生成此方法。 你的情況,你可以強制ASP.NET中加入下面一行在您Page_Load事件產生__doPostBack:

ClientScript.GetPostBackEventReference(this, string.Empty); 

這條線將迫使該方法的建立。

相關問題