还是AJAX 各位大哥救命!分也没了!
最近我用AJAX.NET来做点东西,以前从没用过AJAX的,可是一用上来,请求服务端返回的DATASET时,却总是返回为空值,以下是我的一段测试代码,返回为空,可是我把DATASet在服务端绑定到DATAGrid中,却是有值的,请问是什么原因?期待高手:
服务端代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(index));
Ajax.Utility.RegisterTypeForAjax(typeof(DataSet));
}
[Ajax.AjaxMethod()]
public static DataSet GetData(string s)
{
System.Data.OleDb.OleDbConnection scn_Conn = new OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + System.Web.HttpContext.Current.Server.MapPath( "Data/#169ol.aline.mdb "));
System.Data.DataSet ds_Ajax = new System.Data.DataSet();
scn_Conn.Open();
System.Data.OleDb.OleDbDataAdapter oda_Ajax = new OleDbDataAdapter( "select Id from movieurl order by Id ",scn_Conn);
oda_Ajax.Fill(ds_Ajax);
return ds_Ajax;
}
客户端测试代码:
function getDataSet(){
var res = index.GetData( "sss ",GetData_callback);
//alert(res.Rows.length);
}
function GetData_callback(response)
{
//var res = .value;
alert(response.value.Tables[0].Name);
}
客户端调用GetData函数时,总是会出现value.Tables为空,或不是对像,直接用alert输出response.value时显示 "Null "。
其它的数据类型都可以,就DataSet和DataTable不行,高手帮帮忙,小弟分也不多,但有一颗最真诚的感谢之心!!!
------解决方案--------------------Ajax.Utility.RegisterTypeForAjax(typeof(DataSet));
去掉试试吧。
还有var res = index.GetData( "sss ",GetData_callback);
把前面的var res=也不要。直接index.GetData( "sss ",GetData_callback);
------解决方案--------------------1、這條語句括號裡的 "index "是你本頁面的Class名稱。
Ajax.Utility.RegisterTypeForAjax(typeof(index));
不明白,你為何有兩條。
2、不要返回DataSet,而是返回DataTable。
3、public static DataSet GetData(string s)
不要用靜態函數,改成:public DataTable GetData(string S)