JQuery ajax 异步传一个数组到 .net后台

莫不利用JQuery
Ajax传值到后台一个字符串,或者连串化后的表单大家都采纳过,不过某些项目,需要我们三遍传值一个数组到后台,那多少个时候有怎么着好的办法吗?

1.JS将数组转换为一个字符串,然后传值到后台,不便于

  比如把一个[1,2,3,4,5]的数组,转换为一个 var str=”1,2,3,4,5″;
的字符串 ,然后传递到后台后,再用.net的 split(‘,’)
分离,这样用起来万分同室操戈,而且还要考虑数组中是否会存在分割字符串的题材

2.运用 JSON.stringify() 方法,方便,简单粗暴。

  前几日早上小朱又曰镪了交给数组的题目,于是和爱侣小飞探讨了下,从前知道JQuery
有 stringify()这多少个法子,也直接不领悟咋用,前几日小飞知道小朱这个问题后,教了下小朱这么些点子,解决了提交数组的题材

  现学现卖,于是明日和园友们享受那几个实用的艺术

 

率先,引入必须的JQuery文件

Ajax 1

 

Ajax 2

 

 然后从你的页面中获取一个数组,那遵照你的实际上需要,可能是用户输入,或者自己从table表格里抓取

Ajax 3

 

 比如小朱需要抓取类似
学号,当后面的checkbox被入选时候,就把这些学号,放在数组里

Ajax 4

前天小朱获得了一个名字为 arrId
的数组,当然你也足以通过其他模式来拼凑自己的数组,那一个不是本文的严重性,本文的重中之重在下边,当你收获这一个数组后,如后传递到后台,和后台交互

传送数组嘛,上文就是为着拼凑那样的一个数组:

Ajax 5

获取这个数组后,大家运用ajax传递到后台:

 //2.传后台
                $.ajax({
                    type: "Post",
                    url: "manager.aspx/DeleteMore",
                    data: JSON.stringify({ arr: arrId }),
                    contentType: "application/json;charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                        if (data.d == "Y") {
                            alert("批量删除成功!");
                            window.location.reload();
                        }

                    }
                });

 

故此,我们需要在本页后台,写一个WebMethod(我的那个页面名字称为manage.aspx,请读者对象遵照自己的页面记得相应变更)

[WebMethod]
        public static string DeleteMore(List<string> arr)
        {
            StringBuilder sb = new StringBuilder();
            foreach (var item in arr)
            {
                sb.Append(item + ",");
            }
            sb.Remove(sb.Length - 1, 1);

            string sqlDelete = "UPDATE stuapply_Info  SET Status=1 WHERE ApplyId IN (" + sb.ToString() + ")";

            int r = DBUtility.DbHelperSQL.ExecuteSql(sqlDelete);

            if (r > 0)
            {
                return "Y";
            }
            else
            {
                return "N";
            }
        }

WebMethod需要引入命名空间:

using System.Web.Services;

 

那么,按F5就足以健康运转了。

 

 

===========总结============

Ajax, 

上文可能说的可比啰嗦,因为小朱担心朋友们看不懂啦,下面简单做一个统计:

1.引入JS文件

2.拼凑出来一个数组

3.ajax后台交互

 $.ajax({
                    type: "Post",
                    url: "页面名.aspx/load",
                    data: JSON.stringify({ arr: arrId }),
                    contentType: "application/json;charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                         alert("操作成功!");
                        }

                    }
                });    

4.后台引入命名空间,写WebMethod

[WebMethod]
        public static string load(List<string> arr)
        {
            StringBuilder sb = new StringBuilder();
            foreach (var item in arr)
            {
                sb.Append(item + ",");
            }
            sb.Remove(sb.Length - 1, 1);

           //sb.ToString() 为 1,2,3,4 可以用在SQL语句的WHERE ... IN ...


            //当然你也可以根据自己的业务逻辑不同,使用List<string>

            //记得最后要 return "Y"; 
        }        

 

把这些利用的形式记录下来,分享给心上人们,方便朋友们上学,方便温馨随后翻看复习!

 

相关文章