간단한 웹 서비스 메서드를 호출 할 때 테이블에 데이터가 없습니다. 내가 datatble 플러그인을 사용하여 jquery datatable에서 서버 측에 의해 데이터 반환을 넣어려고. 하지만 그 테이블 머리글과 테이블에 데이터를 제공합니다. webservice 메서드는 날 Json 데이터를 반환하지만 또한 문자열 태그가 추가되므로 완전히 Json인지 확실하지 않습니다. 그게 문제가 될지도 모르겠다. 나는 이것에 상당히 새롭고 항상 서버 측 부분에서 일 해왔다. 내 작품에서 나는 C# 데이터 테이블을 많이 다루기 때문에 나는 datatable만을 필요로하고 대부분은 시간을 메워야한다. 데이터베이스가 반환 할 열이 없으므로 테이블 구조를 나타내는 모든 클래스 파일을 사용할 수 없습니다. 그 문제를 해결할 방법이 있습니까? 어떤 도움이라도 대단히 감사합니다. Jquery 데이터 테이블 간단한 웹 서비스에서 웹 메서드를 호출 할 때 테이블에 데이터가 표시되지 않습니다.
<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);
}
웹 서비스 방식의 출력에 형식 이하이다.
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":"[email protected]","RoleId":1,"Gender":"F","EmailId":"[email protected]","DateOfBirth":"\/Date(623874600000)\/","Address":"ABC Str. 57"},
{"UserId":"ANATR","UserName":"ANT","UserPassword":"[email protected]","RoleId":1,"Gender":"F","EmailId":"[email protected]","DateOfBirth":"\/Date(-301815000000)\/","Address":"XYZ. 2222"},
{"UserId":"WOLZA","UserName":"DIS","UserPassword":"[email protected]","RoleId":2,"Gender":"M","EmailId":"[email protected]","DateOfBirth":"\/Date(379362600000)\/","Address":"ul. JUMP 68"}]
</string>
데이터 테이블에 XML 래퍼가없는 순수한 json이 필요하다고 생각합니다. – xeo
XML 래퍼 없이는 얻을 수있는 방법이 있습니까 ?? 쿼리에서 반환 한 데이터 테이블을 serialize해야합니다. –