Как вызвать функцию javascript из кода C # позади по нажатию кнопки Asp.net? - PullRequest
2 голосов
/ 25 марта 2012

Я хочу вызвать функцию диалога отправки Facebook из кода:

Код 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: '******'


    });
}

Суть в том, что я хочу вызвать это из динамически сгенерированного Aspxbutton

 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);

}

Однако он не работает Пожалуйста, помогите?

1 Ответ

6 голосов
/ 25 марта 2012

Добавьте его в качестве атрибута.

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

Если OnClientClick не работает, попробуйте onClick. Не могу вспомнить из головы, какая из них будет работать.

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

Псевдокод:

- Функция JS -

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

- Добавление кнопки на странице aspx.cs -

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 на страницу со стороны сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...