jquery 怎么获取后台C#定义的数组
效果,
本人第一次接触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里,获取这里定义的数组,这里我先是定义了一个数组,测试用,其实是数据库读出来的,这里没什么影响吧。
[解决办法]
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有任何疑问,请联系系统管理员!");
}
});
}
[解决办法]
$(".ddcombo").ddcombo({
minChars: 0,
options: function(request,respose){
$.ajax({
url:"",
........
});
}
}
);
[解决办法]
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)}
})