新手写了一篇文章,有误见谅!!
后台代码是C#的
1,首先 , 写一个将datatable里面的记录转化为 json串的函数:
public string ConvertDataTableToJson(DataTable dt)
{
StringBuilder sbs = new StringBuilder();
if (dt.Rows.Count > 0)//如果有记录
{
sbs.Append("{'" + dt.TableName + "':[");
string str = "";
foreach (DataRow dr in dt.Rows)//开始拼
{
string result = "";
foreach (DataColumn dc in dt.Columns)
{
result += string.Format(",'{0}':'{1}'",
dc.ColumnName, dr[dc.ColumnName]);
}
result = result.Substring(1);
result = ",{" + result + "}";
str += result;
}
str = str.Substring(1);
sbs.Append(str);
sbs.Append("]}");
}
else//如果没有记录
{
sbs.Append("");
}
return sbs.ToString();
}
打个比方:我有一个表叫做goods,里面有三列:goodsName , goodsPrice , goodsNumber ,并且有一些点记录,把这些记录转化为json串之后就可以直接给前台的javascript调用了,返回的josn串大概是:
{'goods':[{'goodsName':'马铃薯','goodsPrice':'12.0000','goodsNumber':'5'},{'goodsName':'AfD','goodsPrice':'23.0000','goodsNumber':'6'}]}
2,写一个函数将你要用的表转成json串,比如:
public string ConvertGoodsToJson()
{
DataTable dt =//你的table,注意一定要有名字
return ConvertDataTableToJson(dt);
}
这个函数就是给前台调用的 <%=ConvertTbGoodsToJson()%>
并且你的table一定要有名字,因为上面的转化函数是要tableName的
3,前台代码如下
<head runat="server">
<title>测试</title>
<script type="text/javascript">
function show() {
var json = <%=ConvertTbGoodsToJson() %> ;
json = eval (json.goods);
for (var i =0 ; i<json.length ; i++)
{
alert(json[i].goodsName);
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" value="button" οnclick="show()" />
</div>
</form>
</body>
注意的是 json.goods的意思表面叫做goods(不同的表有不同的名字)
for语句是遍历
json[i].goodsName就是列名为goodsName的值