2012-03-25 70 views
2

我想打電話給我的facebook從代碼發送對話框功能背後:如何從Asp.net按鈕後面的c#代碼中調用javascript函數按鈕單擊?

的JavaScript代碼是:

function facebook_send_message(to) { 
    FB.ui({ 
     app_id:'*****', 
     method: 'send', 
     name: "*****", 
     link: '*****', 
     to: <%=to %>, 
     description:'sdf sdf sfddsfdd s d fsf s ', 
     redirect_uri: '******' 


    }); 
} 

這裏的扭曲是我想從動態生成的.aspx的按鈕來調用這個

Button btn = new Button(); 
btn.CssClass = "btn-add"; 
btn.Text = "Invite"; 
btn.Click += new EventHandler(btn_Click); 

我試過按鈕驗證碼點擊

protected void btn_Click(object sender,EventArgs e) 
{ 

    Page.ClientScript.RegisterStartupScript(Page.GetType(), "my", "function facebook_send_message(to);", true); 

} 

但是它不工作請幫忙?

回答

6

將其添加爲屬性。

btn.attributes.add("OnClientClick", "javaScript: return myfunction();); 

如果OnClientClick不工作,嘗試onClick。無法記住我的頭頂哪一個會起作用。

請務必從JS函數return false以防止Postback

僞代碼:

--JS Function--

function myFunction() { 
     alert('this is my fb function'); 
     return false; 
} 

- 增加按鈕,在aspx.cs page--

Button b = new Button(); 
b.ID = "btnSomeButton"; 
b.Text = "Call fb button"; 
dvButton.Controls.Add(b); 
b.Attributes.Add("onclick", "return myFunction();"); 

你不需要btn_click事件,你有在你的代碼中。你也不需要RegisterStartupScript,因爲你已經有了JS文件中的函數。當您想要從服務器端添加JS功能到頁面時,使用RegisterStartupScript

+0

'OnClientClick'應該可以工作。 'Click'需要一個服務器端方法。 – Abel 2012-03-25 15:34:44

+0

謝謝。我已經更新了答案。我想這是onClick,而不是點擊。 – Asdfg 2012-03-25 15:37:21

+0

我的按鈕是一個aspx按鈕,它不工作。它只是回發 – vini 2012-03-25 16:04:40

相關問題