Вызов функции ASP.NET из JavaScript? - PullRequest
133 голосов
/ 06 августа 2008

Я пишу веб-страницу в ASP.NET. У меня есть некоторый код JavaScript, и у меня есть кнопка отправки с событием щелчка.

Можно ли вызвать метод, созданный мной в ASP, с помощью события click JavaScript?

Ответы [ 20 ]

1 голос
/ 11 августа 2008

Возможно, вы захотите создать веб-сервис для ваших общих методов.
Просто добавьте атрибут WebMethodAttribute к функциям, которые вы хотите вызвать, и на этом все.
Наличие веб-службы со всеми вашими обычными вещами также упрощает обслуживание системы.

1 голос
/ 26 августа 2010

Если функция __doPostBack не сгенерирована на странице, вам нужно вставить элемент управления, чтобы заставить ее выглядеть следующим образом:

<asp:Button ID="btnJavascript" runat="server" UseSubmitBehavior="false" />
0 голосов
/ 15 марта 2017

Я пробую это, и поэтому я могу запустить метод Asp.Net при использовании jQuery.

  1. Переадресация страницы в вашем коде jQuery

    window.location = "Page.aspx?key=1";
    
  2. Затем используйте строку запроса при загрузке страницы

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["key"] != null)
        {
            string key= Request.QueryString["key"];
            if (key=="1")
            {
                // Some code
            }
        }
    }
    

Так что нет необходимости запускать дополнительный код

0 голосов
/ 05 декабря 2016

Самый простой и лучший способ добиться этого - использовать onmouseup() событие JavaScript вместо onclick()

Таким образом, вы будете запускать JavaScript после нажатия, и он не будет мешать событию ASP OnClick().

0 голосов
/ 05 марта 2016

Пожалуйста, попробуйте это:

<%= Page.ClientScript.GetPostBackEventReference(ddlVoucherType, String.Empty) %>;

ddlVoucherType - это элемент управления, который вызовет выбранное изменение индекса ... И вы можете поместить любую функцию в выбранное изменение индекса этого элемента управления.

0 голосов
/ 01 октября 2013

Вы также можете получить его, просто добавив эту строку в свой код JavaScript:

document.getElementById('<%=btnName.ClientID%>').click()

Я думаю, что это очень легко!

0 голосов
/ 14 марта 2013

Попробуйте это:

if(!ClientScript.IsStartupScriptRegistered("window"))
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "window", "pop();", true);
}

или это

Response.Write("<script>alert('Hello World');</script>");

Используйте свойство OnClientClick кнопки для вызова функций JavaScript ...

0 голосов
/ 10 мая 2010

Этот ответ работает для меня как бриз, кросс-браузер:

Метод __doPostBack () работает хорошо.

Другое решение (очень хакерское) - просто добавить невидимую кнопку ASP в разметку и щелкнуть по ней методом JavaScript.

<div style="display: none;"> 
    <asp:Button runat="server" ... OnClick="ButtonClickHandlerMethod" /> 
</div> 

Из вашего JavaScript найдите ссылку на кнопку, используя ее ClientID, а затем вызовите для нее метод .Click ():

var button = document.getElementByID(/* button client id */); 

button.Click(); 

Blockquote

0 голосов
/ 15 июня 2011

Вы можете использовать PageMethods.Your C# method Name для доступа к методам C # или VB.NET в JavaScript.

0 голосов
/ 12 февраля 2011

Добавьте эту строку в загрузку страницы, если вы получаете объект ожидаемой ошибки.

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