原来用的微软封装的Ajax控件UpdatePannel和ScriptManager去实现无刷新联动,但一直出现意料之外的现象导致不正常联动。单独的做demo就没事,放到系统中就出问题,经过调试之后仍然不解。条条大路通罗马,还不信能被憋死了。众所周知,JQuery封装了Ajax,调用起来比原生的Ajax要好用的多,实现异步刷新当然也更一些了,虽然功能简单,直接看代码:

1.  JS代码:

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:14px;">   <script type="text/javascript" language="javascript">
  2. $(function () {
  3. //利用dropdownlist的change事件
  4. $("#hbKeyWordsType").change(function () {
  5. //获取关键字类型
  6. var keyType = $("#hbKeyWordsType").val();
  7. $.ajax({
  8. url: "WxKeywords_WxMessageFunOperation.aspx/hbKeyWordsType_SelectedIndexChanged",    //调用后台方法:页面/方法名
  9. type: "post",
  10. data: "{typeCode:" + keyType + "}",     //给后台传递数据,参数名必须跟方法的参数名一致
  11. contentType: "application/json;charset=uft-8",
  12. success: function (dataJson) {
  13. $("#hbKeysName").empty();           //清除关键字下拉框中原来存在的数据
  14. var strNames = eval(dataJson.d);    //必须加.d,否则无法解析。不太清除原因,通过调试发现存在,但代码中智能提示中却没有d
  15. for (var i = 0; i < strNames.length; i++) {
  16. $("#hbKeysName").append($("<option value='" + strNames[i].Code + "'>" + strNames[i].Keywords + "</option>")); //这个添加关键字
  17. }
  18. },
  19. Error: function () {
  20. alert("服务器错误,请联系管理员!");
  21. }
  22. });
  23. });
  24. });
  25. </script>
  26. </span></span>

2. 页面相关控件(用的是平台封装的控件,普通DropDownList也可以)

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:14px;"><td class="fieldtitle">
  2. 关键字类型
  3. </td>
  4. <td class="fieldvalue">
  5. <SOA:HBDropDownList runat="server" ID="hbKeyWordsType" />
  6. </td>
  7. <td class="fieldtitle">
  8. 关键字名称
  9. </td>
  10. <td class="fieldvalue">
  11. <SOA:HBDropDownList runat="server" ID="hbKeysName" />
  12. </td></span></span>

3. 后台C#代码

  1. <span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:14px;">   [WebMethod]  //用于前台Jquery的调用
  2. public static string hbKeyWordsType_SelectedIndexChanged(string typeCode)
  3. {
  4. //根据选取的关键字类型和公共号编码查找关键字实体集合
  5. string accountCode = WxMessageAdapter.Instance.GetCurrentWxAccountCode();
  6. int keyWordsType =int.Parse(typeCode);
  7. WxKeywordsCollection wxKeyColl = WxKeywords_WxMessageAdapter.Instance.LoadByAccAndKeyType(accountCode, keyWordsType);
  8. //使用封装好的JSON序列化的方法返回Json串
  9. string reutnJson=JSONSerializerExecute.Serialize(wxKeyColl);
  10. return reutnJson;
  11. }
  12. </span></span>

注意事项:

1. 前台页面:  ①url:"本页面名称/方法名称";  ②必须添加contentType:"application/json;charset=utf-8";  ③dataJson.d通过.d属性来取服务端返回的数据
2. 后台方法:  ①方法由[WebMethod]修饰;   ②方法必须是公共且静态的方法;  ③方法里的参数名称必须与脚本里data的参数名一样,顺序可以不一样

之前dataJson没有添加.d,一直取不到后台返回来的数据,通过调试之后发现其实已经返回来了,只不过是data.d的形式,如下图:

从上图可以看出,dataJson是一个对象,而Eval函数是只能解析字符串的,导致一直取不到值。做这个功能花费了很长时间,虽然最终做出来了,也没多少欣慰,工作中的任务可是不等人的。但,万事开头难,只要上手了,一切都会好起来。

WebForm使用JQuery实现DropDownList无刷新联动的更多相关文章

  1. asp.net DropDownList无刷新ajax二级联动实现详细过程

    只适合新手制作DropDownList无刷新ajax二级联动效果: 数据库实现,添加两表如图:表1,pingpai,表2,type,具体数据库实现看自己的理解: //页面主要代码: <asp:S ...

  2. JQuery 实现页面无刷新

    对于JQuery实现页面无刷新的效果,即:应用这个JQuery这个组件,可以实现在页面上加载数据库中的数据信息,但是并没有给用户页面刷新的感觉,这样既可以有效的进行数据交互,也可以不妨碍用户的其他操作 ...

  3. JQuery中国省市区无刷新三级联动查询

    之前有写过用<Ajax控件来实现中国的省市区无刷新查询> 今天用JQuery来实现,用Ajax控件和JQuery的优缺点就先不说了. 效果图如下: 下面来结合代码来详细说明一下如何用JQu ...

  4. jQuery AJAX 网页无刷新上传示例

    新年礼,提供简单.易套用的 jQuery AJAX 上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 ...

  5. [Asp.net mvc]jquery.form.js无刷新上传

    写在前面 最近在自己的网盘项目中想用ajax.beginform的方式做无刷新的操作,提交表单什么的都可以,但针对文件上传,就是个鸡肋.在网上查找了发现很多人都遇到了这个问题,大部分都推荐使用jque ...

  6. jquery ajax php 无刷新上传文件 带 遮罩 进度条 效果的哟

    在很多项目中都会叫用户上传东西这些的,自从接触了jquery 和ajax之后就不管做什么,首先都会想到这个,我这个人呢?是比较重视客户体验的,这次我这边负责的是后台板块,然后就有一块是要求用户上传照片 ...

  7. repeater绑定dropdownlist,jquery+ajax页面无刷新,修改dropdownlist默认值

    html代码: <td>                        <asp:HiddenField ID="hiddenchuli" Value='< ...

  8. jQuery Ajax实现下拉框无刷新联动

    HTML代码: @{ Layout = null; } @using DAL; @using System.Data; @{ AreaDal areaDal = new AreaDal(); stri ...

  9. jQuery Pjax – 页面无刷新加载,优化用户体验

    pjax 是 HTML5 pushState 以及 Ajax 两项技术的简称,综合这两个技术可以实现在不刷新页面的情况下载入 HTML 到当前网页,带给你超快速的浏览器体验,而且有固定链接.标题以及后 ...

随机推荐

  1. react 常用的ui库

    1. https://ant.design/docs/react/introduce-cn   ANT DESIGNui 2. http://www.material-ui.com/#/   Mate ...

  2. javaScript [[scope]]学习笔记

    在javaScript 学习中,闭包肯定是一个让人头疼的问题,而闭包必定离不开[[scope]]作用域 scope存储了执行期上下文的集合 而了解scope以及scope链又是一个十分抽象的问题 我们 ...

  3. 【Django】Cookie

    目录 Cookie介绍 操作Cookie 获取Cookie 设置 Cookie 删除Cookie @ Cookie介绍 Cookie的由来 大家都知道==HTTP协议是无状态的==. ==无状态的的意 ...

  4. 51nod 最大子矩阵和

    一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值. 我们可以降维,枚举矩形的长,然后算出一个一维数组,然后就转化成了最大字段和问题 #include< ...

  5. Linux中为XEN网桥绑定物理网卡

    XEN虚拟机会默认将可以连通外网的网卡绑定到xenbr0上, 因此如果需要切换到其他物理网卡上时,需要自己配置脚本或执行命令. 1.添加脚本绑定 a.编写一个脚本,指定网卡与网桥绑定的关系 # vim ...

  6. es63块级作用域

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Onvif开发之客户端鉴权获取参数篇

    前面一篇已经介绍了客户端如何发些设备,下面这篇简单介绍下在发现设备后,如何通过ONVIF协议来获取设备的相关参数 ONVIF中不管是客户端还是设备端,最先实现的接口都是关于能力的那个接口,在客户端实现 ...

  8. 51Nod 圆与三角形

    给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0).   Input 第1行:一个数T ...

  9. ajax的内容

    ajax是什么? 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新,可以局部刷新而不必整个页面整体刷新. url的简单认识: 进入服务器的三种方式: 1.localhost:端口号 ...

  10. date---显示或设置系统时间与日期

    date命令可以用来显示或设定系统的日期与时间,格式设定为一个加号后接数个标记,其中可用的标记列表如下: 时间方面: %H : 小时(00..23) %M : 分钟(00..59) %p : 显示本地 ...