我们可以使用Jquery ajax调用方法后面的用户控制代码吗?
谢谢,
答案 0 :(得分:2)
您无法使用Jquery Ajax直接在用户控件中调用方法。
您可以尝试以下方法之一:
将网址设置为PageName.aspx?Method=YourMethod
或者添加一些
其他限制因此您知道应该执行哪个用户控件
方法。然后在您的用户控件中,您可以检查是否存在
您在查询字符串中的限制,并执行给定的方法。
如果你这样做,你可以使用客户端回调来执行某些方法 需要做一些异步的事情。在页面的GetCallbackResult中,你 可以找到导致回调的控件,并传递请求 其控制参数。
答案 1 :(得分:0)
“我们可以使用Jquery ajax调用用户控件代码吗?
如果您的意思是使用Web方法,请不要。您无法使用PageMethod
通过外部查询直接访问用户控件的方法。它们仅在页面(ascx)级别受支持。
只需使用WebService asmx
代替您的功能。
答案 2 :(得分:0)
没有。你不能从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。
我认为它应该可以工作,因为所有文件都将被合并。