跟蹤前台返回結果如下:
v = { "value ":new Ajax.Web.DataSet([new Ajax.Web.DataTable([[ "id ", "System.String "],[ "name ", "System.String "],[ "dizhou_id ", "System.String "],[ "sheng_id ", "System.String "]],[[ "01 ", "市轄區 ", "01 ", "65 "],[ "02 ", "天山區 ", "01 ", "65 "],[ "03 ", "沙依巴克區 ", "01 ", "65 "],[ "04 ", "新市區 ", "01 ", "65 "],[ "05 ", "水磨溝區 ", "01 ", "65 "],[ "06 ", "頭屯河區 ", "01 ", "65 "],[ "07 ", "達阪城區 ", "01 ", "65 "],[ "08 ", "東山區 ", "01 ", "65 "],[ "09 ", "經濟技術開發區 ", "01 ", "65 "],[ "10 ", "高新技術產業開發區 ", "01 ", "65 "],[ "21 ", "烏魯木齊縣 ", "01 ", "65 "]])])};
AjaxPro2 返回DataSet 時出現" 缺少對象"錯誤 的問題解決辦法:
這個它的一個bug!
可以通過修改原始碼解決這個問題。
具體方法:
1.下載原始碼
2.在 "AjaxPro\JSON\Converters\"下找到"DataTableConverter.cs"檔案。
3.修改第71行,
if (!AjaxPro.Utility.Settings.OldStyle.Contains("renderJsonCompliant"))
把"!"去掉然後重新編譯就好了。
--------------------------------------------------------------------------
AjaxPro之官網是http://ajaxpro.info,你可以下載到最新之AjaxPro組件。如果你想下載,可以點裡這裡。
在下載之之檔案中,有VS2005之模板,安裝了VS2005模板,就可以在VS2005中直接建立AjaxProWebSite了,在建立之AjaxProWebSite中,有一個預設之Demo,其實通過它,就能夠完全瞭解AjaxPro之用法。
如果你用之是.NET2.0,且不用VS2005之話。你只需要把AjaxPro.2.dll放入應用程式之bin檔案夾中,而且也只需要如下幾步:
1、修改web.config
在system.web節點下添加
<system.web>
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
</httpHandlers>
2、將你之.NET方法添加AjaxMethod屬性
[AjaxPro.AjaxMethod]
public DateTime GetServerTime()
{
return DateTime.Now;
}
3、在.NET方法中向用戶端註冊javascript,用以javascript使用
namespace MyDemo
{
public class _Default
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(this.GetType());
}
[AjaxPro.AjaxMethod]
public DateTime GetServerTime()
{
return DateTime.Now;
}
}
}
4、在用戶端用javascript調用伺服器端之方法,文法也很簡單
function getServerTime()
{
MyDemo._Default.GetServerTime(getServerTime_callback); // asynchronous call
}
// This method will be called after the method has been executed
// and the result has been sent to the client.
function getServerTime_callback(res)
{
alert(res.value);
}
就這樣,簡單之幾步,就已經完成了。在用戶端用javascript非同步呼叫伺服器端之C#方法,並可以得到伺服器端之傳回值,這個值會傳到javascript,javascript可以處理這個返回之值,這個樣本是官方給出之樣本,伺服器端返回之是一個DateTime,不過,我們也可以返回複雜之資料類型,像DataTable之類,總之,AjaxPro把Ajax搞得很簡單。