i have aproblem when display my page with json return null in alert message , webservice return my normal data , but not display on page
web service (DirectoryService.asmx)
Public Class GetDirectory
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function LoadData() As String
System.Threading.Thread.Sleep(500)
Dim da As New Directories()
Dim dt As New Directories.DirectoriesDataTable
dt = da.Read("3", Nothing, 1, 5)
Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim rows As New List(Of Dictionary(Of String, Object))()
Dim row As Dictionary(Of String, Object)
For Each dr As DataRow In dt.Rows
row = New Dictionary(Of String, Object)()
For Each col As DataColumn In dt.Columns
row.Add(col.ColumnName, dr(col))
Next
rows.Add(row)
Next
Return serializer.Serialize(rows)
End Function
* web service result
<string xmlns="http://tempuri.org/">
[{"DirectoryID":1,"DirectoryName":"artist","DirectoryNameAr":"الفنانون","DirectoryImage":"41570.7052485995.jpg","AllowDisplay":true,"OrderBy":2,"CreatedOn":"\/Date(1382536533483)\/"},{"DirectoryID":2,"DirectoryName":"Developer","DirectoryNameAr":"المطورون","DirectoryImage":"41571.6455421065.jpg","AllowDisplay":true,"OrderBy":1,"CreatedOn":"\/Date(1382617774857)\/"},{"DirectoryID":3,"DirectoryName":"Teachers","DirectoryNameAr":"المعلمين","DirectoryImage":"123123","AllowDisplay":true,"OrderBy":3,"CreatedOn":null},{"DirectoryID":4,"DirectoryName":"face","DirectoryNameAr":"الفنانون","DirectoryImage":"41570.7052485995.jpg","AllowDisplay":true,"OrderBy":2,"CreatedOn":"\/Date(1382536533483)\/"},{"DirectoryID":5,"DirectoryName":"nesho","DirectoryNameAr":"المطورون","DirectoryImage":"41571.6455421065.jpg","AllowDisplay":true,"OrderBy":1,"CreatedOn":"\/Date(1382617774857)\/"}]
</string>
* Json on my page (Loading.aspx)
<script src="js/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
var skiprows = 1;
$(document).ready(function () {
fnBuildData();
$("#btnComments").bind("click", function () {
fnBuildData();
return false;
})
});
function fnBuildData() {
$("#imgLoading").show();
$.ajax({
type: "POST",
contentType: "Application/json ; charset=utf-8",
url: "GetDirectory.asmx/LoadData",
data: '{}',
datatype: "json",
success: function (msg) {
var nextrows = <%= getrows%> +1;
skiprows += nextrows;
var cmntobject = $.parseJSON(msg.d);
alert(cmntobject);
$("#imgLoading").hide();
if (cmntobject.length < nextrows)
{ $("#btnComments").hide(); }
$.each(cmntobject, function (index, cmnt) {
$("#resultsTable").append("<table><tr><td>DirectoryName :</td><td>"
+ cmnt.DirectoryName + "</td></tr><tr><td> DirectoryNameAr : </td><td> "
+ cmnt.DirectoryNameAr + "</td></tr><tr><td colspan='2' nowrap='nowrap'>"
+ cmnt.DirectoryID + "<hr /></td></tr></table>");
});
}
,
error: function () { alert('Error occured , try later .'); $("#imgLoading").hide(); }
});
}
</script>
* asp
<div id="resultsTable">
</div>
<img id="imgLoading" alt="loading" src="images/loadingAnimation.gif" />
<asp:ImageButton ID="btnComments" EnableViewState="false" Width="90" Height="90" ClientIDMode="Static" runat="server" ImageUrl="~/images/loadmore.jpg" />
when display my page (loading.aspx) but it return message (null)
where is my problem ?