CallBack-PageCommand和JSON基础

  JavaScript对象标记法,英文名称 JavaScript Object Notation(简称JSON),是一种文字格式标记法,相较于 XML 而言,JSON 明显更为简洁。而 JSON 这种精简的数据表示方式,非常适合用于 AJAX 的数据转输。


  我们使用「BasePage 撰写 PageCommand 事件 (使用 CallBack)」一文中提及的 PageCommand 来执行 AJAX,并在 PageCommand 事件中回传 JSON 字符串,客户端以 JavaScript 取得回传的 JSON 对象。

  在页面上放置一个 Button 来执行 CallBack PageCommand,Button.OnClientClick 使用 GetCallBackPageCommandEventReference 方法取得执行 PageCommand 事件的客户端指令码,客户端以 ReceiveServerData JavaScript 函式来接收伺服端的回传数据。当引发 PageCommand 时,透过 e.CallbackResult 属性来回传 JSON 字符串给客户端的 ReceiveServerData 函式。

aspx.vb 的程序代码如下

Partial Class Default
    Inherits Bee.Web.TBBasePage

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Button1.OnClientClick = Me.BeeScript.GetCallBackPageCommandEventReference("JSON", "", "ReceiveServerData", "") & ";return false;"
    End Sub

    Protected Sub Page_PageCommand(ByVal sender As Object, ByVal e As TBBasePage.PageCommandEventArgs) Handles Me.PageCommand
        e.CallbackResult = "{'myCats': [ {'name': 'Hero', 'age': 5, 'color': 'silver' }, {'name': 'Euro', 'age': 2, 'color': ['brown', 'white', 'black']}]}"
    End Sub
End Class

  客户端负责接收 CallBack 伺服端回传数据的 ReceiveServerData 函式如下所示,会将传回的 JOSN 字符串使用 eval 函式来转换为 JSON 对象。

    <script type="text/jscript">
    function ReceiveServerData(value){
        var obj = eval ("(" + value + ")");
        alert('I have ' + obj.myCats.length + ' cats.');
        alert(obj.myCats[0].name);
        alert(obj.myCats[1].name);
    }
    </script>

执行结果如下

 

 

 

参考数据:
http://www.json.org/
http://caterpillar.onlyfun.net/Gossip/AjaxGossip/JSON.html

来源:http://www.cnblogs.com/jeff377/archive/2008/08/21/1272691.html

加支付宝好友偷能量挖...


评论(0)网络
阅读(99)喜欢(0)Asp.Net/C#/WCF