`

Jquery 相关技术累积

 
阅读更多
Jquery 文章积累

转自:http://www.cnblogs.com/yangtongnet/archive/2010/05/20/1740200.html

  博主用JQuery+XML、JQuery+JSON两种方式列出了,处理后台数据的方法。很好,收藏了!

【Jquery + Xml】
      如下代码是我查询IPInfo表中前10条数据,并以XML格式输出:
代码
public void XmlToAjax()
{
   DataTable dt = SQLHelper.ExecuteDataTable(SQLHelper.conStrings, CommandType.Text, "select top(10) * from IPInfo");
   DataSet ds = new DataSet();
   ds.Tables.Add(dt);
   //Console
   Response.ContentType = "text/xml";
   Response.Charset = "UTF-8";
   Response.Clear();
   Response.Write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n " + ds.GetXml());
   Response.End();
}

     我在前台接收到数据后进行如下处理:
代码
function checkText() {
            var xmlT;
            if ($.trim($("#txtID").val()) == "") {
                $("#sm").text("请输入XML条件");
                $("#txtID").focus();
                return false;
            }
            else {
                $("#sm").text("");
                $.ajax({
                    type: "GET", 
                  //contentType: "application/json", //WebService 会返回Json类型
                    url: "../Ajax/Ajax1.aspx",
                    dataType: "xml",
                    data: "",  //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到      
                    success: function(result) {     //回调函数,result,返回值
                        var ID = '';
                        $(result).find("Table1").each(function() {
                            ID += $(this).children("IPid").text() + "<br>";
                        });
                        $("#divMsg").html(ID);
                    }
                });
            }

        }

     下面是输出结果:
     result.xml 的结果集为:

代码
result.xml
"<?xml version="1.0"?>
<NewDataSet>
    <Table1>
        <IPid>1</IPid>
        <IPFrom>0.0.0.0        </IPFrom>
        <IPTo>0.255.255.255  </IPTo>
        <IPLocation>IANA  CZ88.NET</IPLocation>
        <IPToNumber>16777215</IPToNumber>
        <IPFromNumber>0</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>2</IPid>
        <IPFrom>1.0.0.0        </IPFrom>
        <IPTo>1.255.255.255  </IPTo>
        <IPLocation>IANA  CZ88.NET</IPLocation>
        <IPToNumber>33554431</IPToNumber>
        <IPFromNumber>16777216</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>3</IPid>
        <IPFrom>2.0.0.0        </IPFrom>
        <IPTo>2.255.255.255  </IPTo>
        <IPLocation>IANA  CZ88.NET</IPLocation>
        <IPToNumber>50331647</IPToNumber>
        <IPFromNumber>33554432</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>4</IPid>
        <IPFrom>3.0.0.0        </IPFrom>
        <IPTo>3.255.255.255  </IPTo>
        <IPLocation>美国 新泽西通用电气公司</IPLocation>
        <IPToNumber>67108863</IPToNumber>
        <IPFromNumber>50331648</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>5</IPid>
        <IPFrom>4.0.0.0        </IPFrom>
        <IPTo>4.9.255.255    </IPTo>
        <IPLocation>美国  CZ88.NET</IPLocation>
        <IPToNumber>67764223</IPToNumber>
        <IPFromNumber>67108864</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>6</IPid>
        <IPFrom>4.10.0.0       </IPFrom>
        <IPTo>4.10.255.255   </IPTo>
        <IPLocation>美国 新泽西州立大学</IPLocation>
        <IPToNumber>67829759</IPToNumber>
        <IPFromNumber>67764224</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>7</IPid>
        <IPFrom>4.11.0.0       </IPFrom>
        <IPTo>4.11.255.255   </IPTo>
        <IPLocation>美国 夏威夷</IPLocation>
        <IPToNumber>67895295</IPToNumber>
        <IPFromNumber>67829760</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>8</IPid>
        <IPFrom>4.12.0.0       </IPFrom>
        <IPTo>4.19.77.255    </IPTo>
        <IPLocation>美国  CZ88.NET</IPLocation>
        <IPToNumber>68374015</IPToNumber>
        <IPFromNumber>67895296</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>9</IPid>
        <IPFrom>4.19.78.0      </IPFrom>
        <IPTo>4.19.78.255    </IPTo>
        <IPLocation>美国 西南政法大学</IPLocation>
        <IPToNumber>68374271</IPToNumber>
        <IPFromNumber>68374016</IPFromNumber>
    </Table1>
    <Table1>
        <IPid>10</IPid>
        <IPFrom>4.19.79.0      </IPFrom>
        <IPTo>4.19.79.63     </IPTo>
        <IPLocation>美国 Armed Forces Radio/Television</IPLocation>
        <IPToNumber>68374335</IPToNumber>
        <IPFromNumber>68374272</IPFromNumber>
    </Table1>
</NewDataSet>
"

    看到这一串代码,那我接下来面对的问题就是去分析这一串代码,取出我所需要的数据,以前一直都是这样处理的(),就像这一段代码:
    $(result).find("Table1").each(function() {    ID += $(this).children("IPid").text() + "<br>"; });  是要取出XML中的所有IPid的数据。
     (顺便插入一句:因为用Jquery操作XML,所以代码相对比较简洁,如果用JS的话会较之麻烦一些。)
    那我们接下来再看看Jquery是如何处理Json格式的数据的:
   【Jquery + Json】
    在处理之前,首先我们要做一件事,就是将数据库取出的数据转换成Json格式,可能已存在有多种转换方法,这里呢我就先说下自己的Json转换方法:
    首先创建一个JsonHelper的类如下:
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Web;
using System.Runtime.Serialization.Json;

namespace LinqModel
{
    public static class JsonHelper
    {
        /// <summary>
        /// 格式化成Json字符串
        /// </summary>
        /// <param name="obj">需要格式化的对象</param>
        /// <returns>Json字符串</returns>
        public static string ToJson(this object obj)
        {
            // 首先,当然是JSON序列化
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());

            // 定义一个stream用来存发序列化之后的内容
            Stream stream = new MemoryStream();
            serializer.WriteObject(stream, obj);

            // 从头到尾将stream读取成一个字符串形式的数据,并且返回
            stream.Position = 0;
            StreamReader streamReader = new StreamReader(stream);
            return streamReader.ReadToEnd();
        }
    }
}

当然这里我们需要引用两个DLL文件(System.Runtime.Serialization.Json,System.ServiceModel.Web),当然这里直接添加添加.net引用,找到这两个DLL就OK了,然后我们需要创建一个实体类,以便用泛型操作,代码如下:

代码
/// <summary>
    /// 实体类IPInfo 。(属性说明自动提取数据库字段的描述信息)
    /// </summary>
    [DataContract]
    public class IPInfo
    {
        public IPInfo()
        { }
        #region Model
        private long _ipid;
        private string _ipfrom;
        private string _ipto;
        private string _iplocation;
        private string _ipcity;
        private string _iptonumber;
        private string _ipfromnumber;
        /// <summary>
        /// Key
        /// </summary>
        [DataMember]
        public long IPid
        {
            set { _ipid = value; }
            get { return _ipid; }
        }
        /// <summary>
        /// 区间开始
        /// </summary>
        [DataMember]
        public string IPFrom
        {
            set { _ipfrom = value; }
            get { return _ipfrom; }
        }
        /// <summary>
        /// 区间结束
        /// </summary>
        [DataMember]
        public string IPTo
        {
            set { _ipto = value; }
            get { return _ipto; }
        }
        /// <summary>
        /// 位置
        /// </summary>
        [DataMember]
        public string IPLocation
        {
            set { _iplocation = value; }
            get { return _iplocation; }
        }
        /// <summary>
        /// 城市
        /// </summary>
        [DataMember]
        public string IPCity
        {
            set { _ipcity = value; }
            get { return _ipcity; }
        }
        /// <summary>
        ///
        /// </summary>
        [DataMember]
        public string IPToNumber
        {
            set { _iptonumber = value; }
            get { return _iptonumber; }
        }
        /// <summary>
        ///
        /// </summary>
        [DataMember]
        public string IPFromNumber
        {
            set { _ipfromnumber = value; }
            get { return _ipfromnumber; }
        }
        #endregion Model

    }

注意:如果要对该类进行序列化,一定要在类前面添加上“[DataContract]”,在属性前面添加上“[DataMember]”,这样才能被“DataContractJsonSerializer”序列化成JSON。
下面我们来看如何调用这个方法转换成Json格式的数据:
代码
public void JsonToAjax()
        {
            using (SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.conStrings, CommandType.Text, "select top(10) * from IPInfo"))
            {
                List<LinqModel.IPInfo> list = new List<LinqModel.IPInfo>();
                while (reader.Read())
                {
                    LinqModel.IPInfo model = new LinqModel.IPInfo();
                    model.IPCity = reader["IPCity"].ToString();
                    model.IPFrom = reader["IPFrom"].ToString();
                    model.IPFromNumber = reader["IPFromNumber"].ToString();
                    model.IPid = long.Parse(reader["IPid"].ToString());
                    model.IPLocation = reader["IPLocation"].ToString();
                    model.IPTo = reader["IPTo"].ToString();
                    model.IPToNumber = reader["IPToNumber"].ToString();
                    list.Add(model);
                }
                //list.ToJson();
                Response.Write(list.ToJson());
                Response.End();
            }

        }


就是如此调用:list.ToJson(),简单吧,下面看一下输出的结果:

代码
[{"IPCity":"","IPFrom":"0.0.0.0 ","IPFromNumber":"0","IPLocation":"IANA CZ88.NET","IPTo":"0.255.255.255 ","IPToNumber":"16777215","IPid":1},{"IPCity":"","IPFrom":"1.0.0.0 ","IPFromNumber":"16777216","IPLocation":"IANA CZ88.NET","IPTo":"1.255.255.255 ","IPToNumber":"33554431","IPid":2},{"IPCity":"","IPFrom":"2.0.0.0 ","IPFromNumber":"33554432","IPLocation":"IANA CZ88.NET","IPTo":"2.255.255.255 ","IPToNumber":"50331647","IPid":3},{"IPCity":"","IPFrom":"3.0.0.0 ","IPFromNumber":"50331648","IPLocation":"美国 新泽西通用电气公司","IPTo":"3.255.255.255 ","IPToNumber":"67108863","IPid":4},{"IPCity":"","IPFrom":"4.0.0.0 ","IPFromNumber":"67108864","IPLocation":"美国 CZ88.NET","IPTo":"4.9.255.255 ","IPToNumber":"67764223","IPid":5},{"IPCity":"","IPFrom":"4.10.0.0 ","IPFromNumber":"67764224","IPLocation":"美国 新泽西州立大学","IPTo":"4.10.255.255 ","IPToNumber":"67829759","IPid":6},{"IPCity":"","IPFrom":"4.11.0.0 ","IPFromNumber":"67829760","IPLocation":"美国 夏威夷","IPTo":"4.11.255.255 ","IPToNumber":"67895295","IPid":7},{"IPCity":"","IPFrom":"4.12.0.0 ","IPFromNumber":"67895296","IPLocation":"美国 CZ88.NET","IPTo":"4.19.77.255 ","IPToNumber":"68374015","IPid":8},{"IPCity":"","IPFrom":"4.19.78.0 ","IPFromNumber":"68374016","IPLocation":"美国 西南政法大学","IPTo":"4.19.78.255 ","IPToNumber":"68374271","IPid":9},{"IPCity":"","IPFrom":"4.19.79.0 ","IPFromNumber":"68374272","IPLocation":"美国 Armed Forces Radio\/Television","IPTo":"4.19.79.63 ","IPToNumber":"68374335","IPid":10}]

标准的Json格式,呵呵,看了上面的代码,是不是很方便,我想下面的操作就更简单了,看下面的Jquery代码:

代码
function checkText1() {
            var xmlT;
            if ($.trim($("#txtID1").val()) == "") {
                $("#sm1").text("请输入Json条件");
                $("#txtID1").focus();
                return false;
            }
            else {
                $("#sm1").text("");
                $.ajax({
                    type: "GET",   //访问WebService使用Post方式请求
                    contentType: "application/json", //WebService 会返回Json类型
                    url: "../Ajax/Ajax1.aspx", //调用WebService的地址和方法名称组合---WsURL/方法名
                    dataType: "json",
                    data: "",  //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到      
                    success: function(result) {     //回调函数,result,返回值
                        var aa = '';
                        aa += result[1]["IPid"] + "<br>";
                        aa += result[1]["IPFrom"] + "<br>";
                        aa += result[1]["IPTo"] + "<br>";
                        aa += result[1]["IPLocation"] + "<br>";
                        aa += result[1]["IPCity"] + "<br>";
                        aa += result[1]["IPToNumber"] + "<br>";
                        aa += result[1]["IPFromNumber"] + "<br>";
                        $("#divMsg").html(aa);
                    }
                });
            }

我们再来看一下 result的结果集:
result
{...}
    [0]: {...}
    [1]: {...}
    [2]: {...}
    [3]: {...}
    [4]: {...}
    [5]: {...}
    [6]: {...}
    [7]: {...}
    [8]: {...}
    [9]: {...}
result[0]
{...}
    IPCity: ""
    IPFrom: "0.0.0.0        "
    IPFromNumber: "0"
    IPid: 1
    IPLocation: "IANA  CZ88.NET"
    IPTo: "0.255.255.255  "
    IPToNumber: "16777215"
就像操作一个泛型一样简单,便捷。
                                                            本文章转自网络收藏
                                                                    mc
分享到:
评论

相关推荐

    jQuery实现带控制按钮的图片滚动特效(可多个)

    此外,为了防止频繁点击导致的性能问题,可以应用防抖动(debounce)或节流(throttle)技术来限制自动滚动的触发频率。 7. **兼容性和优化**:考虑到不同浏览器的差异,可能需要使用`.on()`方法来处理事件,以支持老...

    jquery模拟windows8风格的菜单效果

    可以使用jQuery的`stop()`函数来停止当前运行的动画,防止累积的动画请求造成延迟。 通过以上步骤,我们可以创建一个既美观又实用的Windows8风格菜单。这种菜单不仅在视觉上吸引人,还能提供高效的导航功能,尤其...

    jquery统计图表jscharts

    7. **面积图(Area Chart)**:折线图的填充版,强调数据的累积变化。 8. **雷达图(Radar Chart)**:多维度数据的比较,适合展示复杂数据的关系。 **四、jsCharts实例** 创建一个基本的jsCharts柱状图实例通常...

    【Jquery经典特效1】网站左侧下拉菜单

    本篇文章将详细讲解如何利用jQuery实现一个经典的网站左侧下拉菜单效果,以及与之相关的技术点。 首先,下拉菜单是网站导航中常见的一种设计,尤其适用于多层次的菜单结构。在jQuery中,我们可以利用事件监听和DOM...

    jquery鼠标滑过菜单颜色渐变显示.rar

    《jQuery实现鼠标滑过菜单颜色渐变显示技术详解》 在网页设计中,交互性和用户体验是至关重要的元素,其中菜单导航的设计与功能扮演着举足轻重的角色。本篇文章将详细探讨如何使用jQuery库实现一个鼠标滑过时菜单...

    Jquery+div/css 鼠标经过内容切换实例

    本实例重点讲解如何利用 jQuery 和 CSS 技术实现在鼠标经过(hover)某个div元素时,动态切换显示的内容。下面我们将深入探讨这个主题。 首先,我们来理解 `div` 和 `CSS` 的基本概念。`div` 是HTML中的一个通用...

    jquery特效之制作专业的下拉菜单

    `pro_dropdown_1.html`可能是实现这个效果的示例页面,而其他文件如`JSShare下载说明.txt`和`JSShare网页特效分享_JS特效_Jquery特效_HTML5教程_前端素材_编程知识_前端素材.url`可能包含了更多的学习资源和相关教程...

    jQuery顶部导航栏下拉菜单.zip

    综上所述,“jQuery顶部导航栏下拉菜单”项目结合了HTML、CSS和jQuery的技术,创建了一个响应用户操作的交互式导航菜单。通过良好的设计和编程实践,这个下拉菜单既美观又实用,提高了用户的浏览体验。在实际开发中...

    jquery实现鼠标hover悬停遮罩显示特效源码.zip

    这里的`.stop()`方法用于停止当前动画,防止累积多个悬停事件导致的动画堆栈。`fadeTo()`方法则用于改变元素的透明度。 4. **添加遮罩层**:最后,在HTML结构中添加遮罩层,我们可以将它作为一个子元素放在`.hover...

    新浪网jQuery二级下拉菜单.zip

    本教程将详细讲解如何利用jQuery库,结合HTML5、CSS和JavaScript技术,来创建类似新浪网的二级下拉菜单。这将帮助你提升网站的用户体验,使用户能够更方便地浏览和访问网站的多层次结构。 首先,我们需要理解HTML5...

    使用jQuery实现图片遮罩半透明坠落遮挡

    本文介绍了一种使用jQuery实现图片遮罩半透明坠落遮挡的技巧,该技术可以广泛应用于相册或图片展示类的网页中,为用户提供更为生动和吸引人的交互体验。 首先,需要了解jQuery是什么。jQuery是一个快速、小巧、功能...

    jQuery实现颜色打字机的完整代码

    在实现这个效果的过程中,涉及到的关键技术包括jQuery的选择器、DOM操作以及JavaScript的定时器。 首先,我们需要引入jQuery库,这里使用的是jQuery 2.1.4版本。在HTML文件中,通过`&lt;script&gt;`标签引入jQuery库,...

    利用JQUERY制作的点击图像伸展显示导航菜单广告代码.rar

    标签中提到的"C#",可能是指这个项目与ASP.NET或者.NET框架有关,因为这些技术常常与jQuery一起使用来构建Web应用程序。不过,实际的C#代码在这个项目中并不直接体现,主要涉及的是前端JavaScript部分。 综上所述,...

    jQuery实现边框动态效果的实例代码

    接下来,让我们详细解析这一技术实现的过程和相关知识点。 首先,我们需要了解jQuery库。jQuery是一个快速、小巧且功能丰富的JavaScript库。它通过减少代码量来简化JavaScript的编程。jQuery通过选择器、CSS操作、...

    jQuery弹性滑动导航菜单实现思路及代码

    为了实现平滑过渡,我们调用了`.stop()`方法来停止之前的动画,避免动画队列的累积导致效果叠加混乱。 为了维护代码的可维护性与可扩展性,我们还定义了一些变量,如`$current_nav`来存储当前选中的导航项,以及`$...

    jQuery 定时局部刷新(setInterval)

    需要注意的是,`setInterval`可能会累积多个未执行的回调,因此在某些情况下,可能需要配合`clearInterval`来停止定时器,以防内存泄漏或不必要的计算负担。例如,当用户离开页面或不再需要定时更新时,可以调用`...

    jquery动感漂浮导航菜单代码分享

    通过使用jQuery的链式调用和.stop()方法,确保在进行动画过渡前清除之前正在执行的动画,从而防止动画队列累积导致的动画效果不连贯。这对于动态的、连续的动画效果尤为重要。 代码还提到了一种在IE6浏览器中解决...

    jQuery网页版俄罗斯方块小游戏特效代码

    相应的,每种难度还关联着不同的得分,分别是10分、20分和40分,玩家可以通过消除行数来累积分数。 消除行是游戏的关键机制。当一行被填满时,它会消失,上方的方块会下移填补空位。此项目的实现可能包括一个检查...

    Jquery+CSS 创建流动导航菜单 Fluid Navigation

    这种菜单通过结合jQuery和CSS技术,能够在用户鼠标悬停在菜单项上时,显示额外的提示信息,既实用又具有视觉吸引力。以下是创建流动导航菜单的具体步骤和相关知识点: 首先,我们需要准备CSS样式来定义菜单的基本...

    基于jQuery实现图片推拉门动画效果的两种方法

    本文将详细介绍如何使用jQuery技术来实现图片推拉门动画效果,亦称之为手风琴效果。此效果在Web前端开发中十分常见,能增强用户的交互体验。推拉门效果在不同的上下文和实现方法中,基本的实现思路是相似的。文章将...

Global site tag (gtag.js) - Google Analytics