这篇文章将帮助你怎样实现客户端调用后台定义的方法。JQuery让生活变的更简单,对于它来说,这有一个很简单的方法去实现这个目的。
早前,我们知道一种方法:如果我们想从客户端去调用一个后台添加的函数就需要写一种叫的WebMethod的东西,而现在,通过下面的方法,我们将无需再用到WebMethod。
通过下面的例子,我将写一个方法,它的目的是当点击删除键时将会删除一个指定的用户。我不想回发(postback,Web 页将数据发送回服务器上的同一页的进程。),所以想从客户端执行该事件。我在服务器端的cs文件中写了一个方法,并在客户端通过JQuery去调用它。这 个页面叫Test.aspx。而这个方法叫DeleteRec()。
private void DeleteRec() { int ID = Request.Form["ID"].ToString().ToInteger(); //parameter send from client side int UserID = Request.Form["UserID "].ToString().ToInteger(); //parameter send from client side UserBO lObjUserBO = new UserBO(); lObjUserBO .DeleteUser(ID, UserID); }
下面将介绍如果调用这个方法:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { #region Ajax methods if (Request.Form["MethodName"] == "DeleteR") // same Method Name that we are specifying on client side(DeleteR) { DeleteRec(); // Method defined on the page to delete the record return ; } #endregion } }
这就是我们需要在客户端(Test.aspx)中需要添加的。
<a id="adelete" href="java<!-- no -->script:void(0);">Delete</a>
使用下需要脚本将会在我们点击锚标记的时候调用服务端的方法。
$('#adelete').click(function()
{
var dataToSend={ID:ID,MethodName:'DeleteR',UserID :UserID };
var options =
{
url: '<%=ResolveUrl("~/Test.aspx") %>?x=' + new Date().getTime(),
data: dataToSend,
dataType: 'JSON',
type: 'POST',
success: function (response) {
window.location.href='<%=ResolveUrl("~/Test1.aspx")%>/'+ID;
//after success will redirect to new page
}
}
$.ajax(options);