使用ASP.NET引用layer表格时,一直提示code:'0’或者其他情况,只有两种原因:
1、返回的数据格式错误:
layer表格的返回数据要有3个参数,code、msg、data,且data必须json格式。同时ASP.NET的ajax请求接口编写在.ashx格式的一般处理文件。 context.Response.Write=return;以下是示例:
public void layerTable(HttpContext context)
{
SqlDataReader read = DbHelperSQL.ExecuteReader("select * from vwUserWithParentName");
List<TreeData> list = null;
list = new List<TreeData>();
while (read.Read())
{
TreeData treeData = new TreeData();
treeData.id = int.Parse(read["id"].ToString());
treeData.title = read["Name"].ToString();
treeData.ParentID = int.Parse(read["parentid"].ToString());
treeData.PathName = read["path_name"].ToString();
list.Add(treeData);
}
string jsonData = JsonConvert.SerializeObject(list);//这是asp.net把字符串Json格式化功能。
context.Response.Write("{\"code\":0,\"msg\":\"\",\"count\":1000,\"data\":" + jsonData + "}");//拼接layer表格需要的json格式
}
2、第二个原因是返回的数据格式正确,而前台接收的字段名字错误;例如上面返回的字段分别是
id,title ,ParentID ,PathName 。所以前台filed绑定接收也应该只有这几个字段,代码如下:
<table class="layui-table" lay-data="{width: 892, height:330, url:'/Admin/GetData.ashx?action=layerTable', page:true, id:'idTest'}" lay-filter="demo">
<thead>
<tr>
<th lay-data="{type:'checkbox', fixed: 'left'}"></th>
<th lay-data="{field:'id', width:80, sort: true, fixed: true}">ID</th>
<th lay-data="{field:'title ', width:80}">标题</th>
<th lay-data="{field:'ParentID ', width:80, sort: true}">父级ID</th>
<th lay-data="{field:'PathName ', width:80}">路径</th>
</tr>
</thead>
</table>