在作的过程中碰见了这样的问题,就是回调函数不能嵌套使用,那么解决的办法呢有2种(我个人的所发现的,可能还有其他更好的方法)。
下面就把这个小东东写出来。
一,先把第一个简单的容易看懂的写出来
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Collections;
5
using System.Web;
6
using System.Web.Security;
7
using System.Web.UI;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
using System.Data.SqlClient;
12
13
namespace LoadGridView
14
这是在后台页面的代码,很容易,那么在前台页面的js文件也很简单2
3
4
5
6
7
8
9
10
11
12
13
14
1
这样就很容易的实现了Ajax和GridView的功能了,但是大家看看是不是和以前我们写的代码有点不一样呢?就是在js里面我们没有用回调的函数,那么如果要使用回调函数会出现什么问题呢?先面就把不太正确的做法写出来,不是说不正确,而是离我们的想要的效果还有一段距离,.cs文件是一样的,唯独js的函数不一样了,我只把js的函数列出来
1
function AddAjax()
2
}
大家仔细看,在CalBack回调函数里面我们调用了LoadGv函数,而LoadGV函数确又调用CallServerBack这个回调函数,那么就是回调函数嵌套了,2
这样的话,虽然运行没问题,但是效果和第一个的就不一样,在插入后,页面不会把新插入的数据即时的显示出来,那么怎么办呢?
就是在CallBack函数里面改写一下程序,把LoadGV()改为window.setTimeout(LoadGV,100);这样一来就实现了相同的效果,同时呢又回到了我们熟悉的回调函数了。
另一种解决方法是把LoadGV所要执行的服务器的回调函数写道另一个.cs文件里面那么上面的js的文件就用改写了,只是要把方法掉对了。
有什么不妥当的地方,还请各位高手指点。