2012-03-25 3 views
2

Я хочу назвать мой facebook отправить диалоговую функцию из кода за:Как вызвать функцию javascript из кода C# позади кнопки Asp.net?

The яваскрипт кода:

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. Не могу вспомнить с головы, который будет работать.

Удостоверьтесь в return false от функции JS, чтобы предотвратить Postback.

Псевдо код:

--JS Function--

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

кнопку --Adding в 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-файле. RegisterStartupScript используется, если вы хотите добавить функцию JS на страницу со стороны сервера.

+0

'OnClientClick' должен работать. 'Click' ожидает метод на стороне сервера. – Abel

+0

спасибо. Я обновил ответ. Я думаю, что это onClick, а не щелчок. – Asdfg

+0

Моя кнопка - кнопка aspx и ее не работает. Это просто postbacks – vini

Смежные вопросы