Нет.Вы не можете вызвать код за пользовательскими элементами управления из 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 из пользовательского элемента управления.
Я думаю, что он должен работать, поскольку все файлы будут объединены.