2010-07-13 19 views

回答

8

做回發通過JavaScript你可以調用以下服務器端爲您創建的JavaScript代碼:

string postBackJavascript = Page.GetPostBackEventReference(yourControl); 

這將返回__doPostBack JavaScript代碼作爲一個字符串,你需要將它放在您的頁面連接到的東西,或者你可以直接調用__doPostBack對自己有:

__doPostBack(yourControlId,''); 

如果你做自己,而不是使用Page.GetPostBackEventReference然後確保獲得ClientID的控制觸發驗證,如:

__doPostBack('<%= yourControl.ClientID %>',''); 

編輯:後重新閱讀你的問題,你沒有說你想觸發基於ASP.NET控件回發,你可能甚至不使用任何ASP.NET控件所以在這種情況下,如果你想只是做了回髮香草,你可以這樣做:

document.forms[0].submit(); 
+0

好,因爲你問..我試圖提交使用ASP.Net按鈕。 現在我不能讓按鈕不提交。我有OnClientClick =「validate(); return false;」但似乎沒有工作。有任何想法嗎?? – bill 2010-07-14 00:15:33

+0

@bill應該工作...嘗試刪除'validate()',看看是否只是'返回false;'的作品。我的預感是你在'validate()'中做了一些事情,因爲它看起來是正確的,這導致了這種行爲。也許開始另一個問題,幷包括你的'validate()'代碼。 – Kelsey 2010-07-14 03:35:28

+0

您可能在取消按鈕行爲時遇到問題,因爲事件堆疊。所以原來那裏的回傳會在你的javascript之前被解僱。所以你需要先清除原來的事件,然後再把你放在最前面。否則,該按鈕將始終提交。 – Simon 2010-10-10 22:01:53

3

如果您想回傳,可以使用ASP.NET放入<form>__doPostBack()。看看這個link。如果您想提交另一個表單,請在表單元素上調用.submit()

3

它應該是越簡單

document.forms[0].submit(); 

提供d,你只有一個表單在頁面上,否則你需要使用表單名稱而不是索引0.

相關問題