JQuery AJAX вызов кода метода позади в пользовательском управлении - PullRequest
2 голосов
/ 12 апреля 2011

Можем ли мы вызвать пользовательский код управления методом, используя Jquery ajax?

Спасибо,

Ответы [ 3 ]

2 голосов
/ 07 января 2012

Вы не можете вызывать метод непосредственно в пользовательском элементе управления с помощью Jquery Ajax.

Вы можете попробовать один из следующих подходов, таких как:

  • Установить URLна PageName.aspx?Method=YourMethod или, возможно, добавьте некоторые другие ограничения, чтобы вы знали, какой пользовательский элемент управления должен выполнять метод.Затем в вашем пользовательском контроле вы можете проверить наличие ограничений в строке запроса и выполнить данный метод.

  • Вы можете просто использовать обратный вызов клиента для выполнения какого-либо метода, если вам нужносделать что-то асинхронное.в GetCallbackResult на странице вы можете найти элемент управления, вызвавший обратный вызов, и передать запрос с его аргументами в элемент управления.

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

Нет.Вы не можете вызвать код за пользовательскими элементами управления из JQuery Ajax, но если у вас есть страница aspx, вы можете назвать ее следующим образом:

 function AddNew() {

        var lname = $("#<%# txtLNameAdd.ClientID %>").val(); //$("#txtFname").val(); // 
        var fname = $("#<%# txtfnameadd.ClientID %>").val(); //$("#txtLname").val(); // 
        var email = $("#<%# txtEmailAdd.ClientID %>").val();
        var address = $("#<%# txtAddressAdd.ClientID %>").val();
        var paramList = '{"fname":"' + fname + '","lname":"' + lname + '","email":"' + email    
         + '","address":"' + address + '"}';
        alert(paramList);
        $.ajax({
            type: "POST",
            url: "GetData.aspx/AddNewMember",
            dataType: "json",
            contentType: "application/json",
            processData: false,
            data: paramList,
            success: function (msg) {
                alert('success');
            },
            error: function (msg) {
                alert("error " + msg.responseText);
            }
        });
         return false;
     }

Код должен быть static и [WebMethod] вот так:

[WebMethod]
public static void AddNewMember(string fname, string lname, string email, string address)
{
    SqlConnection con = new SqlConnection(
        System.Configuration.ConfigurationManager
              .ConnectionStrings["RepeaterDBConnection"].ConnectionString);
    SqlCommand comm = new SqlCommand();
    try
    {
        comm.Connection = con;
        comm.CommandType = CommandType.StoredProcedure;
        comm.CommandText = "[dbo].[AddTeamMember]";
        comm.Parameters.Add(new SqlParameter("@psFname", SqlDbType.VarChar)).Value = fname;
        comm.Parameters.Add(new SqlParameter("@psLname", SqlDbType.VarChar)).Value = lname;
        comm.Parameters.Add(new SqlParameter("@psEmail", SqlDbType.VarChar)).Value = email;
        comm.Parameters.Add(new SqlParameter("@psAddress", SqlDbType.VarChar)).Value = address;
        con.Open();
        comm.ExecuteNonQuery();
    }
    catch (SqlException Ex)
    {
        // write any exception 
    }
    finally
    {
        con.Close();
    }
}

Я раньше не пробовал это с пользовательским элементом управления, но вы можете попробовать.Поместите метод Ajax на страницу, содержащую элемент управления, и вызовите WebMethod из пользовательского элемента управления.

Я думаю, что он должен работать, поскольку все файлы будут объединены.

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

"Можем ли мы вызвать Пользовательский элемент управления код позади метода с использованием Jquery ajax?

Если вы имеете в виду использование веб-методов, нет. Вы не можете напрямую получить доступ к методу пользовательского элемента управления черезвнешний запрос, как вы можете с PageMethod. Они поддерживаются только на уровне страницы (ascx).

Просто используйте вместо этого WebService asmx для своей функциональности.

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