использование событий c # в веб-формах - PullRequest
0 голосов
/ 25 июня 2011

Как вызвать событие, если мой html-синтаксис имеет следующий вид:

<select runat="server" id="selection" onclick="inputCheck"  />

Я пробовал это в следующем коде:

protected void inputCheck(object sender, EventArgs e)
        {
            //doesnt matter because it raised an on click.
        }

Исключение: ошибка времени выполнения Microsoft JScript:'inputCheck' не определено

Ответы [ 2 ]

1 голос
/ 25 июня 2011

Вот пример с отправкой jQuery на сервер с использованием метода ajax, очень чистый и простой в использовании.Дайте мне знать, если у вас есть вопросы.

- HTML-страница

<select id="selection" name="selection" />

- поместите следующий код в тег head в html, окруженный тегами script;Вы также должны включить последнюю версию кода jquery (скачать бесплатно с http://www.jquery.com)

$(document).ready(function()
{
    $("#selection").click(function()
    {
        var selectionValue = $(this).val();
        $.ajax({
            type: "POST",
            url: "CodeBehindPage.aspx/WebMethodName",
            data: "{'input':'" + selectionValue + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                //return value goes here if any
            }
        });
    }
});

// Код за страницей

[System.Web.Services.WebMethod]
public static bool WebMethodName(string input)
{
    try
    {
        //do something here with the input

        return (true);
    }
    catch(Exception ex)
    {
        throw ex;
    }

}

- это отправит код на сервер без каких-либоpostbacks, которые мне нравятся. Чтобы проверить, установите точку останова внутри функции WebMethodName и просмотрите входные данные, переданные. HTH

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

onclick в вашем первом фрагменте работает только в javascript.Чтобы поднять событие на стороне сервера, первым шагом является создание метода javascript для этого события.Оттуда у вас есть несколько вариантов:

  • Вы можете создать ajax-запрос для вызова WebMethod
  • Вы можете опубликовать событие обратно на исходную страницу,Поскольку вы не используете управление asp, вам нужно будет иметь код в вашей page_load, чтобы проверить опубликованные данные для события и поднять его самостоятельно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...