Jquery 数据table 在 table 中没有显示关于从简单网络服务调用网络方法的数据
Jquery datatable Is showing no data in table on calling a web method from a simple web service
我在 table 中没有获得有关调用简单 Web 服务方法的数据。我正在尝试使用数据表插件将服务器端的数据 return 放入 jquery 数据 table 中。但是它没有给我 table 和 table headers 的数据。 Web 服务方法是 return 向我发送 Json 数据,而且还添加了一个字符串标记,所以我不确定它是否完全是 Json。也许这可能是 issue.I 对此相当陌生,并且一直在服务器端工作 part.In 我的工作,我经常处理 C# 数据table,所以我需要序列化数据[=只有 30=],而且大多数时候我什至不确定数据库要使用哪些列 return 所以我不能使用任何代表 table 结构的 class 文件。有什么办法可以解决这个问题吗??非常感谢任何帮助。
<script src="Scripts/jquery-3.1.1.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css" />
<script src="//cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: 'UserService.asmx/UserDetails',
contentType: "application/json; charset=utf-8",
method: 'post',
datatype: 'json',
success: function (data) {
$('#tbl').dataTable({
data: data,
columns: [
{ 'data': 'UserId' },
{ 'data': 'UserName' },
{ 'data': 'UserPassword' },
{ 'data': 'RoleId' },
{ 'data': 'Gender' },
{ 'data': 'EmailId' },
{ 'data': 'DateOfBirth' },
{ 'data': 'Address' },
]
});
},
error: function() {
alert('Fail!');
}
});
});
</script>
我的服务器端网络服务代码是
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string UserDetails()
{
DataTable dt = new DataTable();
dt.TableName = "UserDetails";
SqlConnection conn;
SqlCommand cmd;
string connection = ConfigurationManager.ConnectionStrings["Connstr"].ToString();
string command = "SELECT * FROM tbl_User";
using (conn = new SqlConnection(connection))
{
cmd = new SqlCommand(command, conn);
cmd.CommandType = CommandType.Text;
conn.Open();
cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter(command, conn);
da.Fill(dt);
conn.Close();
}
var js = DataTableToJSONWithJavaScriptSerializer(dt);
return js;
}
public string DataTableToJSONWithJavaScriptSerializer(DataTable dt)
{
JavaScriptSerializer js = new JavaScriptSerializer();
List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
Dictionary<string, object> childRow;
foreach (DataRow row in dt.Rows)
{
childRow = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
childRow.Add(col.ColumnName, row[col]);
}
parentRow.Add(childRow);
}
return js.Serialize(parentRow);
}
webservice 方法的输出格式如下。
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<string xmlns="http://tempuri.org/">
[{"UserId":"XYZ","UserName":"XYX","UserPassword":"XYX@1234","RoleId":1,"Gender":"F","EmailId":"XYX@email.com","DateOfBirth":"\/Date(623874600000)\/","Address":"ABC Str. 57"},
{"UserId":"ANATR","UserName":"ANT","UserPassword":"ABC@1234","RoleId":1,"Gender":"F","EmailId":"ANT@email.com","DateOfBirth":"\/Date(-301815000000)\/","Address":"XYZ. 2222"},
{"UserId":"WOLZA","UserName":"DIS","UserPassword":"AB@1234","RoleId":2,"Gender":"M","EmailId":"DIV@email.com","DateOfBirth":"\/Date(379362600000)\/","Address":"ul. JUMP 68"}]
</string>
我觉得
How to convert datatable to json string using json.net? 可以帮助你序列化后,成功回调使用 jquery.parsejson
尝试:
success: function (data) {
var d = JSON.parse(data.d);
$('#tbl').dataTable({data:d,
等等。
我在 table 中没有获得有关调用简单 Web 服务方法的数据。我正在尝试使用数据表插件将服务器端的数据 return 放入 jquery 数据 table 中。但是它没有给我 table 和 table headers 的数据。 Web 服务方法是 return 向我发送 Json 数据,而且还添加了一个字符串标记,所以我不确定它是否完全是 Json。也许这可能是 issue.I 对此相当陌生,并且一直在服务器端工作 part.In 我的工作,我经常处理 C# 数据table,所以我需要序列化数据[=只有 30=],而且大多数时候我什至不确定数据库要使用哪些列 return 所以我不能使用任何代表 table 结构的 class 文件。有什么办法可以解决这个问题吗??非常感谢任何帮助。
<script src="Scripts/jquery-3.1.1.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css" />
<script src="//cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: 'UserService.asmx/UserDetails',
contentType: "application/json; charset=utf-8",
method: 'post',
datatype: 'json',
success: function (data) {
$('#tbl').dataTable({
data: data,
columns: [
{ 'data': 'UserId' },
{ 'data': 'UserName' },
{ 'data': 'UserPassword' },
{ 'data': 'RoleId' },
{ 'data': 'Gender' },
{ 'data': 'EmailId' },
{ 'data': 'DateOfBirth' },
{ 'data': 'Address' },
]
});
},
error: function() {
alert('Fail!');
}
});
});
</script>
我的服务器端网络服务代码是
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string UserDetails()
{
DataTable dt = new DataTable();
dt.TableName = "UserDetails";
SqlConnection conn;
SqlCommand cmd;
string connection = ConfigurationManager.ConnectionStrings["Connstr"].ToString();
string command = "SELECT * FROM tbl_User";
using (conn = new SqlConnection(connection))
{
cmd = new SqlCommand(command, conn);
cmd.CommandType = CommandType.Text;
conn.Open();
cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter(command, conn);
da.Fill(dt);
conn.Close();
}
var js = DataTableToJSONWithJavaScriptSerializer(dt);
return js;
}
public string DataTableToJSONWithJavaScriptSerializer(DataTable dt)
{
JavaScriptSerializer js = new JavaScriptSerializer();
List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
Dictionary<string, object> childRow;
foreach (DataRow row in dt.Rows)
{
childRow = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
childRow.Add(col.ColumnName, row[col]);
}
parentRow.Add(childRow);
}
return js.Serialize(parentRow);
}
webservice 方法的输出格式如下。
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<string xmlns="http://tempuri.org/">
[{"UserId":"XYZ","UserName":"XYX","UserPassword":"XYX@1234","RoleId":1,"Gender":"F","EmailId":"XYX@email.com","DateOfBirth":"\/Date(623874600000)\/","Address":"ABC Str. 57"},
{"UserId":"ANATR","UserName":"ANT","UserPassword":"ABC@1234","RoleId":1,"Gender":"F","EmailId":"ANT@email.com","DateOfBirth":"\/Date(-301815000000)\/","Address":"XYZ. 2222"},
{"UserId":"WOLZA","UserName":"DIS","UserPassword":"AB@1234","RoleId":2,"Gender":"M","EmailId":"DIV@email.com","DateOfBirth":"\/Date(379362600000)\/","Address":"ul. JUMP 68"}]
</string>
我觉得
How to convert datatable to json string using json.net? 可以帮助你序列化后,成功回调使用 jquery.parsejson
尝试:
success: function (data) {
var d = JSON.parse(data.d);
$('#tbl').dataTable({data:d,
等等。