需求: 页面上有两个下拉框,显示游戏大区 和游戏服务器,当游戏大区改变时,游戏服务器也跟着改变

界面部分html代码

  1. <tr class="tkSigUser">
  2. <th>游戏大区:</th>
  3. <td>
  4. <asp:DropDownList ID="gamezonedll" runat="server"></asp:DropDownList>
  5. </td>
  6. <td></td>
  7. </tr>
  8. <tr class="tkSigUser">
  9. <th>服务器名:</th>
  10. <td>
  11. <select id="serverddl" name="serverdll"></select>
  12. <input type="hidden" name="serverName" />
  13. </td>
  14. <td></td>
  15. </tr>

xml文档内容

在ready部分 页面初始化时根据大区ID加载服务器信息 ,当大区变更时change事件,服务器信息变化。

  1. var xmDoc;//用于装载请求到的xml文档
  2.  
  3. 使用ajax 异步请求xml文档并处理
  4.  
  5. $(document).ready(function () {
  6.  
  7. $.ajax({
  8. url: "../js/xinhejiguang.xml",
  9. dataType: 'xml',
  10. type: 'get',
  11. error: function () {
  12. alert("加载区服信息失败");
  13. },
  14. success: function (xml) {
  15. xmlDoc = xml; //将xml保存起来,可以在其他地方接着使用,不用再次请求
  16. var gamezoneid = $("#<%=gamezonedll.ClientID %> option:selected").val();
  17. findServer(gamezoneid);
  18. }
  19.  
  20. });
  21.  
  22. $("#<%=gamezonedll.ClientID %>").change(function () {
  23. var id = $("#<%=gamezonedll.ClientID %> option:selected").val();
  24. $("#serverddl").empty();
  25. findServer(id);
  26. });
  27.  
  28. });
  1. //根据大区ID,查找服务器信息并添加到 服务器节点
  2. function findServer(zoneid) {
  3. var gameServerList = $(xmlDoc).find("game[id='10123']").find("gameZone[id='"+zoneid+"']").find("gameServer");
  4. gameServerList.each(function (index, content) {
  5. var serverid = $(content).attr("id");
  6. var servername = $(content).attr("name");
  7. $("#serverddl").append("<option value='" + serverid + "'>" + servername + "</option>");
  8. });
  9.  
  10. }

程序采用的是web form ,.net 2.0平台。所以使用了服务器端控件。开始的设想是 大区 、服务器都使用web服务器控件,在page_Load 方法中初始化加载区服信息,

用jquery 异步改变服务器的值,但是在提交时出现 回发或回调参数无效 的错误,

网上查找基本回答都是一样的 http://hi.baidu.com/chy_daima/item/733e963fd63dccb8134b148c

但是这些方法都不好用,简单方法 禁用 EnableEventValidation="false" ,会导致在behindcode 中获取不到你修改的控件的值,只是获取原来的值。

开始用js取新的服务器信息是用下边的方法:

webform 在前台js中调用后台代码的方法:

首先在Page_Load 中 写上

  1. Ajax.Utility.RegisterTypeForAjax(typeof(xinhejiguang));

xinhejiguang 是后台的类名

然后再后台写方法

  1. [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
  2. public string GetGameServer(string zoneId)
  3. {
  4. XmlDocument jiguang = new XmlDocument();
  5. string filepath = AppDomain.CurrentDomain.BaseDirectory + "zc\\js\\xinhejiguang.xml";
  6. jiguang.Load(filepath);
  7.  
  8. XmlNode zonenode = jiguang.SelectSingleNode("/company/gameList/game[@name='极光世界']/gameZoneList/gameZone[@id=" + zoneId + "]");
  9. XmlNodeList serverlist = zonenode.SelectNodes("gameServerList/gameServer");
  10. StringBuilder buider = new StringBuilder();
  11.  
  12. foreach (XmlNode server in serverlist)
  13. {
  14. string serverid = server.Attributes["id"].Value;
  15. string servername = server.Attributes["name"].Value;
  16. buider.AppendFormat("{0}:{1}|", serverid, servername);
  17. }
  18.  
  19. buider.Remove(buider.Length - , );
  20. return buider.ToString();
  21. }

那么 在前台 js 就可以通过

  1. var id = 11159;
  2. var result = xinhejiguang.GetGameServer(id).value;

来调用后台程序,得到服务器信息。然后再进行split 分割,加载。

这个方法对于用js调用服务器端的方法很好用。

Jquery 操作xml 文档的方法的更多相关文章

  1. 操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP)

    原文:操作XML文档遇到的XMLNS问题及解决方法 (C# 和 PHP) 不管是用 PHP 还是 C#, 在操作 XML 的时候我们除了一个节点一个节点去取值之外, 还有一个非常方便的表达式, 就是 ...

  2. 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

    众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...

  3. 操作xml文档的常用方式

    1.操作XML文档的两种常用方式: 1)使用XmlReader类和XmlWriter类操作 XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点 ...

  4. 四种生成和解析XML文档的方法详解

    众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...

  5. jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强)

    jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强) 一.总结 一句话总结:多看参考文档,多看主干目录.一般的功能分两个方法来实现,一个对应标签,一个对应标签和事情,比如克隆 ...

  6. C#XmlHelper帮助类操作Xml文档的通用方法汇总

    前言 该篇文章主要总结的是自己平时工作中使用频率比较高的Xml文档操作的一些常用方法和收集网上写的比较好的一些通用Xml文档操作的方法(主要包括Xml序列化和反序列化,Xml文件读取,Xml文档节点内 ...

  7. XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。

    XML DOM DOM 把 XML 文档视为一种树结构.通过这个 DOM 树,可以访问所有的元素.可以修改它们的内容(文本以及属性),而且可以创建新的元素.元素,以及它们的文本和属性,均被视为节点. ...

  8. 用ORM的思想操作XML文档,一个对象就搞定不要太简单。滚蛋吧!XmlDocument、XmlNode、Xml***……

    大家有没有这样的感受,一涉及XML文档操作就得百度一遍.是不是非!常!烦!.各种类型,各种方法,更别提为了找到一个节点多费劲.本来想写个XML操作的工具方法,写了两行一想既然XML文档是有规律的,如果 ...

  9. C#操作XML文档---基础

    增查改删代码如下 public void CreateXML() { XmlDocument xml = new XmlDocument(); xml.AppendChild(xml.CreateXm ...

随机推荐

  1. DirectX考试判卷心得

    今天帮老师判<三维图形程序设计>的试卷,这门课开卷考,用的教材是段菲翻译的DX9的龙书.判卷过程中发现有两道题虽然不难,但是错的比较多: 1.Direct3D中深度缓冲区中值的范围? A. ...

  2. shell复习笔记----查找与替换

    查找文档 以grep 程序查找文本(匹配文本 matching text)相当方便.传统上有三种程序可以用来查找整个文本文件. grep 最早的文本匹配程序.其最简单的方式就是使用固定字符串 $ wh ...

  3. 4.3 spring-嵌入式beans标签的解析

    对于嵌入式的beans标签,想信大家很少使用过,或者接触过,起码,我本人就没用过. 它非常类似于Import标签所提供的功能; 使用如下: <?xml version="1.0&quo ...

  4. A geometric interpretation of the covariance matrix

    A geometric interpretation of the covariance matrix Contents [hide] 1 Introduction 2 Eigendecomposit ...

  5. mac忘记密码的解决办法

    开机, 启动时按"cmd+S".这时,你会进入Single User Model,出现像DOS一样的提示符 #root>.请在#root>下 输入 (注意空格, 大小写 ...

  6. Head First 设计模式笔记:单例模式

    单例模式 确保一个类只有一个实例,并提供一个全局访问点. 类图: Singleton static uniqueInstance //其他属性... static getInstance() //其他 ...

  7. cocos2d-x3.9 默认是 gnustl_static 配置,但是 这个库缺少c++的基础功能... c++_static 功能全面些

    最近的升级Cocos2d-x 3.2正式版.iOS不管是什么程序编译问题,使用结果cocos compile -p android编译APK计划.结果悲剧,出现以下错误. Android NDK: I ...

  8. SaaS系列介绍之二: SaaS介绍

    1 引言 横看成岭侧成峰,远近高低各不同. 不识庐山真面目, 只缘身在此山中.                                                  ________苏轼, ...

  9. HDMI介绍与流程

    HDMI接口 http://baike.c114.net/view.asp?id=17671-21565442 DDC(Display Data Channel)通道用于HDMI发送和接收端之间交换一 ...

  10. [Unity菜鸟] 笔记2 —— 问题篇

    记录在学习<Unity 3.x 游戏开发 经典教材>时遇到的各种问题与笔记 1. 初始不能降低Terrain的高度,需要到Terrain设置的第二个按钮中将Height从0调高 (注意:最 ...