jquery 怎么获取后台C#定义的数组

ghostbill 2012-12-01 10:51:52
效果,
本人第一次接触jquery,只想求段代码,因为没有时间研究,急着用,个位大侠行过好。
前台是直接调用的jquery现成的文件:还有怎么样把droplist里选择的值传回C#后台文件,回答好的,可加分,太急需了,谢谢个位了。
<head runat="server">
<title>
</title>
<script type="text/javascript" src="js/jquery/jquery-1.2.6.min.js"></script>
<link rel="stylesheet" type="text/css" href="js/jquery/ddcombo/jquery.ddcombo.css" />

<script type="text/javascript" src="js/jquery/ddcombo/lib/jquery.ready.js"></script>
<script type="text/javascript" src="js/jquery/ddcombo/lib/jquery.flydom-3.1.1.js"></script>
<script type="text/javascript" src="js/jquery/ddcombo/lib/autocomplete/jquery.bgiframe.min.js"></script>
<script type="text/javascript" src="js/jquery/ddcombo/lib/autocomplete/jquery.dimensions.js"></script>
<script type="text/javascript" src="js/jquery/ddcombo/lib/autocomplete/jquery.ajaxQueue.js"></script>
<script type="text/javascript" src="js/jquery/ddcombo/lib/autocomplete/thickbox-compressed.js"></script>
<script type="text/javascript" src="js/jquery/ddcombo/jquery.ddcombo.js"></script>
<script type="text/javascript" src="js/jquery/main.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="box1" class="ddcombo">

</div>
</form>
</body>
</html>


后台只需要把一个数组传到前台就OK了,JS传值的页面:
$(document).ready(function(){
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

$(".ddcombo").ddcombo({
minChars: 0,
options: months
}
);

});
请问上面我应该怎么样,把这里定义 的数组换成C#后台传递过来的数组?
C#后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
public string[] list=new string[7];

protected void Page_Load(object sender, EventArgs e)
{
//string[] mf3 = { "c", "c++", "c#" };
list =new string[]{ "a1", "a2", "a3", "a4", "s2", "s1", "s4" };


}
}
我只需要JS里,获取这里定义的数组,这里我先是定义了一个数组,测试用,其实是数据库读出来的,这里没什么影响吧。



...全文
440 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghostbill 2012-12-02
  • 打赏
  • 举报
回复
问题没解决 ,是我太笨了,也没有时间研究了,果断换别的方法实现去了,谢谢大家的回答,
Go 旅城通票 2012-12-01
  • 打赏
  • 举报
回复
ddcombo这个组件应该有配置远程获取数据的,自己看下api这个组件需要什么类型的数据,再后台直接组合成那种字符串,不能直接返回数组这种,除非是ms的框架之类的有对应的js解析,要不纯jq只能是接受字符串的
xingfuzhuzi1314 2012-12-01
  • 打赏
  • 举报
回复

 JSONObject json = new JSONObject();
        json.put("arrayList", list);
        super.response().setCharacterEncoding("UTF-8");
        try {
            PrintWriter printWrite = super.response().getWriter();
            printWrite.write(json.toString());
            printWrite.flush();
            printWrite.close();
        } catch (IOException e) {
            logger.error(e, e);
        }finally{
            super.response().getWriter().close();
        }
function xiao(){
                $.ajax({
                    url: "你请求的地址",
                    contentType: "application/json;charset=utf-8",
                    type: "post",  
                    dataType: "json",
                    success: function(data) {
                        arrayList=data.arrayList;
                        for(var i=0;i<arrayList.length;i++){
                             alert(arrayList[i]);
                        }
                    },
                    error: function() {
                        alert("系统发生异常,请稍候再试!\n\n有任何疑问,请联系系统管理员!");
                    }
                });
           }
后面的ajax请求是手写的,楼主自己思考下!
Go 旅城通票 2012-12-01
  • 打赏
  • 举报
回复
xxxx.aspx.cs
    protected void Page_Load(object sender, EventArgs e)
    {
        //string[] mf3 = { "c", "c++", "c#" };
         list =new string[]{ "a1", "a2", "a3", "a4", "s2", "s1", "s4" };
     string r="";
for(int i=0;i<list.Length;i++)r+=",'"+list[i]+"'";//组合成字符串
r="["+r.Trim(',')+"]";//输出数组字符串内容,以便客户端eval生成数组
Response.Write(r);    
       Response.End();///////结束输出,防止aspx有内容一起输出破坏数组字符串结构
    }
$.ajax({url:'xxxx.aspx',dataType:'html',cache:false,success:function(d){
var d=eval('('+d+')')//生成数据
  $(".ddcombo").ddcombo({
    minChars: 0,
    options: d////////
  });

}
,error:function(xhr){alert('发生错误'+xhr.responseText)}
})
xwbb123 2012-12-01
  • 打赏
  • 举报
回复
$(".ddcombo").ddcombo({ minChars: 0, options: function(request,respose){ $.ajax({ url:"", ........ }); } } );
ghostbill 2012-12-01
  • 打赏
  • 举报
回复
$(document).ready(function(){ 
  var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

  $(".ddcombo").ddcombo({
    minChars: 0,
    options: months
  }
  );

});
这里面,var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 这句要怎么改。把后面的值替换成C#传过来的数组。
  • 打赏
  • 举报
回复
后台执行完才产生前台页面,其中也包括JS.前台页面里任何内容你都可以在后台里写,这个忘了吗? 所以后台的数组,直接以JS承认的数组方式写在JS里就可以了. 如果是前台前面在执行中需要通过AJAX与后台交互获得后台的数据,只能获得TEXT/JSON/XML几种格式的数据,所以可以很简单的把后台的数组元素JOIN联结成一个分隔符连接的字串,比如"theforever1|theforever2|theforever3",返回给前台JS接收后,JS对此字串split就得到对应的数组了. 如上所说,ddcombo这个控件本身就是一个支持AJAX的交互数据控件,JQ可以不细看,但这个控件怎么用总得看看吧,否则还用它干嘛,不如自己手工写一个更透明.

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧