2012-03-25 9 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 doesntの仕事であれば、onClickを試してみてください。私の頭の上から覚えておいてください。

Postbackを防止するためにJS関数からreturn falseに確実にしてください。

擬似コード:

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

当ページ - aspx.csでボタンを--Adding

--JS Function--

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

あなたが持っているようにあなたがbtn_clickイベントを必要といけませんあなたのコードで。また、あなたはすでにJSファイルであなたの関数を持っているので、RegisterStartupScriptは必要ありません。 RegisterStartupScriptは、JS関数をサーバー側からページに追加する場合に使用します。

+0

'OnClientClick'が動作するはずです。 'Click'はサーバ側のメソッドを期待しています。ありがとう。 – Abel

+0

私は答えを更新しました。私はそれがonClickであり、クリックしないと思います。 – Asdfg

+0

私のボタンはaspxボタンで、機能していません。ちょうどポストバックです – vini

関連する問題