技术开发 频道

LINQ to JavaScript


【IT168技术文档】

  LINQ to JavaScript是使用JavaScript来做出类似LINQ样的功能,可以做到在客户端对一些数据筛选,加强了对数组的操作.其中有一些功能本来 JavaScript就有如对数组数据过滤的功能,再想想就这样筛选数据没有什么大的意义,但要把筛选后的数据又通过JSON反回到服务端那就有用拉.这样可以和Silverlight1.0,asp.net ajax在一起使用,它能对他们起到一定的辅助作用吧.(还有这个只能对数组中使用)

  LINQ to JavaScript(JSLINQ)是一个LINQ to Object在 javaScript中的实现,它对JavaScript Arrary Objcet构建一些列的扩展方法.如果你使用一个Array,你能使用LINQ to JavaScript.

  使用
  (1)在你的工程中添加JSLINQ.js文件;
  (2)在你的页面中添上代码<script type="text/javascript" src="JS/JSLINQ.js"></script>

  首先写一个数组:
var myList = [ {FirstName:"Chris",LastName:"Pearson"}, {FirstName:"Kate",LastName:"Johnson"}, {FirstName:"Josh",LastName:"Sutherland"}, {FirstName:"John",LastName:"Ronald"}, {FirstName:"Steve",LastName:"Pinkerton"} ];
  添加查询。
var exampleArray = From(myList). Where("item.FirstName == 'Chris'"). OrderBy("item.FirstName"). Select("item.FirstName");
  结果是:
  Chris

  其实上面有的那些操作符的使用,你在下载官方的文件时里面就有很多事例,就能让能掌握拉.

  我就把筛选数据序列化为JSON穿回服务端.(我一直想做纯JS的网站!)


  接着你再添加两个方法:
jsonObjcet=function() { this.value = '0'; this.text = ''; } Show = function() { var json = new jsonObjcet(); json.value='0'; json.text =exampleArray[0]; var jsonString = Sys.Serialization.JavaScriptSerializer.serialize(json); var currsArea=document.getElementById("Text1"); var currsText = document.getElementById("lbl_JsonString"); currsText.value = jsonString; for(var i=0;i<exampleArray.length;i++) { var group = document.createElement("li"); group.innerHTML = exampleArray[i]; currsArea.appendChild(group); } }
  服务端:
public class JsonObject { public string value = "0"; public string text = String.Empty; } protected void ServerButton2_Click(object sender, EventArgs e) { System.Web.Script.Serialization.JavaScriptSerializer mySerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); JsonObject json = mySerializer.Deserialize<JsonObject>(this.lbl_JsonString.Text); this.Label2.Text = json.text.ToString(); }
  页面
<div id="quickSummary"> <p class="p1" id="Text1">&nbsp;&nbsp; </p> <input id="CilentButton1" type="button" value="CilentButton" onclick="javaScript:Show();" /> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> &nbsp;<aspx:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br/> <asp:Label ID="Label3" runat="server" Text="JSON"></asp:Label><asp:TextBox ID="lbl_JsonString" runat="server"></asp:TextBox> <asp:Button ID="ServerButton2" runat="server" Text="ServerButton" onclick="ServerButton2_Click" /> </ContentTemplate> <Triggers> <aspx:AsyncPostBackTrigger ControlID="ServerButton2" EventName="Click" /> </Triggers> </aspx:UpdatePanel> </div> <div id="ShowSource1"> </div>
0
相关文章