2009-11-23 201 views
0

我有一個button1_click()函數,它在頁面加載時運行,現在我想從javascript中調用此函數,爲此我需要在javascript中執行dopostback,can nyone告訴我該怎麼辦that..as u能看到的button1_Click()我的頁面加載功能上回發運行javascript中調用javascript代碼隱藏或dopastback

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     int l = files.Length; 
     Button1.Attributes.Add("onclick", " alertMe("+ l.ToString() +");"); 
     } 
    Button1_Click(); 

} 

我的javascript代碼:

function alertMe(len) 
{ 
if(len>3) 
//do postback(post back will run Button1_click function) 
else 
alert('Hello'); 
} 

回答

0

辦法之一是使用一個實際的asp:按鈕和利用該事件的OnClientClick ...

<asp:Button id="myButton" runat="Server" OnClick="Button1_Click" OnClientClick="alertMe();" /> 

function alertMe() 
{ 
    if (this.len>3) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

如果alertMe返回true,將發生的回發到服務器,如果返回false, 不會。

這裏是一個link關於OnClientClick事件的更多細節。

+0

好的bt在這種情況下,我將如何檢索len,像早先我從代碼後面檢索文件 – Mishigen 2009-11-23 15:45:24

+0

可以添加文件元素的定義嗎? – user10635 2009-11-23 15:52:30

+0

如果你看到我發佈的代碼,你會看到我試圖計算文件的長度,並將它傳遞給alertMe函數,所以我需要那個長度作爲參數在我的javascript函數 – Mishigen 2009-11-23 15:57:02

0

它看起來像你想使用AJAX調用這個服務器方法。你可以使用ajax.net來做到這一點。很明顯,因此它不會被回發。

有例子

+0

ajax是好的bt可以üPLZ解決它沒有ajax – Mishigen 2009-11-23 15:24:56

0

可能這看看here

function alertMe(len) 
    { 
    if(len>3) 
    //do postback(post back will run Button1_click function) 
alertMe(len); 
    else 
    alert('Hello'); 
    } 

我總是儘量避免內聯JS雖然

+0

沒有多數民衆贊成在錯! – matpol 2009-11-23 15:22:19

1

This is a helpful link

從文章: 「 呼叫回復事件來自Javascript

可能有一些情況下,您可能想使用某些客戶端JavaScript顯式回發到服務器。這樣做很簡單。

ASP.NET已經創建JavaScript方法如下所示,以支持回發爲Web控制的客戶機側:

function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
}