C#后台数组传到前台的javascript
public class info {
public int Cai_No = 0;
public string Cai_Name = "";
public int Price = 0;
}
public info[] myinfo=new info[50];
public void SetInfo()
{
for(int i=0;i<cai_count;++i)
{
myinfo[i] = new info();
myinfo[i].Cai_No = int.Parse(cai_info[0, i]);
myinfo[i].Cai_Name = cai_info[1, i];
myinfo[i].Price = int.Parse(cai_info[4, i]);
}
}
for (var i = 0; i < cai_count ; i++) {
cai[i] = new Array();
document.cookie = "Count="+i;
cai[i][0] = "<%=myinfo[i].Cai_No%>";
cai[i][1] = "<%=myinfo[i].Cai_Name%>";
cai[i][2] = "<%=myinfo[i].Price%>";
}
下边传进来不能用i这类变量,该怎么办?
[解决办法]
转成json字符再给js不好吗?
[解决办法]
去网上找数组转JSON的类,在通过 输出respose到前台,解析JSON.
[解决办法]
后台代码
Dictionary<int, object> installlist = installBll.GetInstallInfo(company.CompanyID, null);
for (int i = 1; i < 13; i++){
if (installlist.ContainsKey(i)){
installs += i + "," + installlist[i] + ";";
}
}
txtInstallInfo.Value = installs;
前台代码
<input type="hidden" id="txtInstallInfo" runat="server" />
<script type="text/javascript">
jQuery(document).ready(function () {
var installs = document.getElementById("txtInstallInfo").value;
//转为数组
eval("var Install=[[" + installs.replace(/;/gi, '],[') + "]]");
})
[解决办法]
JSON使用后台传值前台里面有简单的例子
http://blog.csdn.net/seeransky/article/details/11726093
[解决办法]
又是一个没把前后端分清的
对于后端来说前台的东西都是字符串,服务器生成字符串发送给浏览器
js只有到了浏览器那边才会被当成脚本运行
你想在js传递参数给服务器程序,需要通过ajax,上面说的json就是ajax里常用的一种数据格式