用HTML的select实现动态绑定数据,提示 Invalid JSON

.Net技术 码拜 9年前 (2015-02-12) 1155次浏览 0个评论

前台代码:<script type=”text/javascript”>
$(document).ready(function(){

$.ajax({
type: “post”,
url: “test4.aspx/GetSupplier”, //后台webservice里的方法名称

dataType: “json”,
contentType: “application/json;charset=utf-8”,
data: “{}”,
traditional: true,
success: function(data) {

for (var i in data) {
var jsonObj = $.parseJSON(data[i]);
var optionstring = “”;
for (var item in jsonObj) {
jsonObj = eval(“(“+jsonObj.Table+”)”);
for (i = 0; i < jsonObj.length; i++) {
optionstring += “<option value=”” + jsonObj[i].id + “” >” + jsonObj[i].name + “</option>”;;
}
//                            alert(optionstring);
}
$(“#ddl1”).html(optionstring);
}
},
error: function(msg) {
alert(“出错了!”);
}
});
});
<div>
<select id=”ddl1″ name=”supplier”></select>
</div>
后台代码是:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
///绑定供应商
public static string GetSupplier()
{
string ReturnValue = string.Empty;
string sql = “select deptid, name from network_department where canuse=”0″”;   //sql语句
C_DataCommon dcCommon=new C_DataCommon();
DataTable dt = dcCommon.GetDataTable(sql);  //数据库帮助类 返回databale类型
ReturnValue = DataTableJson(dt);
return ReturnValue;
}
#region dataTable转换成Json格式
/// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name=”dt”></param>
/// <returns></returns>
public static string DataTableJson(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
//jsonBuilder.Append(“”);
// jsonBuilder.Append(dt.TableName.ToString());
jsonBuilder.Append(“{“”);
jsonBuilder.Append(dt.TableName.ToString());
jsonBuilder.Append(“”:[“);
//jsonBuilder.Append(“”[“);
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append(“{“);
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append(“””);
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append(“”:””);
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append(“”,”);
}
jsonBuilder.Remove(jsonBuilder.Length – 1, 1);
jsonBuilder.Append(“},”);
}
jsonBuilder.Remove(jsonBuilder.Length – 1, 1);
//jsonBuilder.Append(“]””);
// jsonBuilder.Append(“””);
jsonBuilder.Append(“]”);
jsonBuilder.Append(“}”);
return jsonBuilder.ToString();
}
#endregion
运行的时候,出现这个错误用HTML的select实现动态绑定数据,提示 Invalid JSON,这哪里不对啊,用dropdownlist的绑定数据我会,但是用JS在table里面动态添加行的时候,好像并不能放服务器控件,只能放HTML的,所以想到用select动态绑定数据了

用HTML的select实现动态绑定数据,提示 Invalid JSON
10分
 success: function(data) {
var d=data.Table;
var optionstring = “”;
for (i = 0; i < d.length; i++) {
optionstring += “<option value=”” + d[i].DEPTID + “” >” + d[i].NAME+ “</option>”;;
}
alert(optionstring);
$(“#ddl1”).html(optionstring);
},
用HTML的select实现动态绑定数据,提示 Invalid JSON
引用 1 楼 slwsss 的回复:

 success: function(data) {
var d=data.Table;
var optionstring = “”;
for (i = 0; i < d.length; i++) {
optionstring += “<option value=”” + d[i].DEPTID + “” >” + d[i].NAME+ “</option>”;;
}
alert(optionstring);
$(“#ddl1”).html(optionstring);
},

d为undefined

用HTML的select实现动态绑定数据,提示 Invalid JSON
5分
  var d=(data.d||data).Table;//这样试下
用HTML的select实现动态绑定数据,提示 Invalid JSON
引用 3 楼 slwsss 的回复:

  var d=(data.d||data).Table;//这样试下

依然是undefined

用HTML的select实现动态绑定数据,提示 Invalid JSON
10分
dataType:”JSON”,大写,不然会出错的
用HTML的select实现动态绑定数据,提示 Invalid JSON
5分
url: “test4.aspx/GetSupplier”, //后台webservice里的方法名称

aspx是什么..

用HTML的select实现动态绑定数据,提示 Invalid JSON
其实是对的,只是数据库里面的元素有空格 ,谢谢大家

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明用HTML的select实现动态绑定数据,提示 Invalid JSON
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!