hi, im trying to implement the webservice binding client side demos on my own project but, the radgrid wont bind the json result
here is my aspx file
and here is my service.cs
i've debug the code with firebug and fiddler and its there the json result, but radgrid keep show "no records to display"
please help me, thanks
regards
dimas
here is my aspx file
<%@ Page Language = "C#"
AutoEventWireup = "true"
CodeBehind = "LogSms.aspx.cs"
Inherits = "Course.Pages.WebForm.LogSms"
MasterPageFile = "../../SharedPage/PageMaster.Master" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<
asp:Content
runat
=
"server"
Id
=
"HeadContent"
ContentPlaceHolderID
=
"HeadContent"
>
</
asp:Content
>
<
asp:Content
Id
=
"LeftContent"
ContentPlaceHolderID
=
"LeftContent"
runat
=
"server"
>
</
asp:Content
>
<
asp:Content
runat
=
"server"
Id
=
"MainContent"
ContentPlaceHolderID
=
"MainContent"
>
<
telerik:RadCodeBlock
ID
=
"RadCodeBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
//
<![CDATA[
function pageLoad(sender, args)
{
setInterval(getData, 10000);
}
function getData()
{
Course.FakeWebService.GetSmsRequestLog(updateGrid);
}
function updateGrid(result) {
var tableView = $find("<%= RadGridKu.ClientID %>");
var mtv = tableView.get_masterTableView();
mtv.set_dataSource(result);
mtv.dataBind();
}
//]]>
</
script
>
</
telerik:RadCodeBlock
>
<
asp:ScriptManager
ID
=
"ScriptManager"
runat
=
"server"
>
<
Services
>
<
asp:ServiceReference
Path
=
"../../FakeWebService.asmx"
/>
</
Services
>
</
asp:ScriptManager
>
<
telerik:RadGrid
ID
=
"RadGridKu"
runat
=
"server"
>
<
MasterTableView
Enabled
=
"true"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"RequestId"
UniqueName
=
"RequestId"
HeaderText
=
"Request ID"
Display
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"HeadParam"
UniqueName
=
"HeadParam"
HeaderText
=
"Head Param"
Display
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"DataParam"
UniqueName
=
"DataParam"
HeaderText
=
"Data Param"
Display
=
"true"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"LogDate"
UniqueName
=
"LogDate"
HeaderText
=
"Log Date"
Display
=
"true"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
>
<
ClientEvents
OnCommand
=
"function(){}"
></
ClientEvents
>
<
DataBinding
Location
=
"../../FakeWebService.asmx"
SelectMethod
=
"GetSmsRequestLog"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
</
asp:Content
>
and here is my service.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Security;
using System.Text;
using System.Web;
using System.Web.Script.Services;
using System.Web.Services;
using System.Xml;
using Course.Entity;
namespace Course
{
/// <
summary
>
/// Summary description for FakeWebService
/// </
summary
>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class FakeWebService : WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
private string SessionLogSmsRequest
{
get { return (string)HttpContext.Current.Session["LogSmsRequest"]; }
set { HttpContext.Current.Session["LogSmsRequest"] = value; }
}
public FakeWebService()
{
new Random(DateTime.Now.Millisecond);
}
[WebMethod(EnableSession = true), Description("Ambil Feed Sms Request")]
public DataSet GetSmsRequestLog()
{
//// create data table
var service = new ServiceReference1.SMSListenerClient();
var listObject = new List<
ObjectEntityClass.LogSmsRequest
>();
if(SessionLogSmsRequest != null)
{
var myobject = service.GetListLogSms(1);
listObject = Class.JsonHelper.Deserialize<
List
<ObjectEntityClass.LogSmsRequest>>(myobject);
}
else
{
var myobject = service.GetListLogSms(1);
listObject = Class.JsonHelper.Deserialize<
List
<ObjectEntityClass.LogSmsRequest>>(myobject);
}
SerializeData(listObject);
var dataSet = new DataSet("LogSmsRequestDataSet");
var reader = XmlReader.Create(new System.IO.StringReader(SessionLogSmsRequest));
dataSet.ReadXml(reader);
return dataSet;
}
private List<
ObjectEntityClass.LogSmsRequest
> GetListData(string xmlData)
{
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xmlData);
var listSmsRequest = new List<
ObjectEntityClass.LogSmsRequest
>();
if (xmlDocument.DocumentElement != null)
{
listSmsRequest = (from XmlNode quoteNode in xmlDocument.DocumentElement.ChildNodes select GetLogSmsRequest(quoteNode)).ToList();
}
return listSmsRequest;
}
private static ObjectEntityClass.LogSmsRequest GetLogSmsRequest(XmlNode logSmsRequest)
{
// ReSharper disable PossibleNullReferenceException
var requestId = logSmsRequest.Attributes["RequestID"].Value;
// ReSharper restore PossibleNullReferenceException
var headParam = logSmsRequest.Attributes["HeadParam"].Value;
var dataParam = logSmsRequest.Attributes["DataParam"].Value;
var logDate = DateTime.Parse(logSmsRequest.Attributes["LogDate"].Value, CultureInfo.InvariantCulture);
return new ObjectEntityClass.LogSmsRequest
{
RequestId = requestId,
HeadParam = headParam,
DataParam = dataParam,
LogDate = logDate
};
}
private IEnumerable<
ObjectEntityClass.LogSmsRequest
> GetListSmsData(string xmlData)
{
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xmlData);
var list = new List<
ObjectEntityClass.LogSmsRequest
>();
ObjectEntityClass.LogSmsRequest obj;
foreach (XmlNode Node in xmlDocument.DocumentElement.ChildNodes)
{
obj = GetLogSmsRequest(Node);
list.Add(obj);
}
return list;
}
private void SerializeData(IEnumerable<
ObjectEntityClass.LogSmsRequest
> LogSmsRequests)
{
var str = new StringBuilder("<
data
>");
try
{
foreach (var items in LogSmsRequests)
{
str.Append("<
sms
");
str.Append("RequestId=\"" + items.RequestId.ToString(CultureInfo.InvariantCulture) + "\" ");
str.Append("HeadParam=\"" + items.HeadParam.ToString(CultureInfo.InvariantCulture) + "\" ");
str.Append("DataParam=\"" + items.DataParam.ToString(CultureInfo.InvariantCulture) + "\" ");
str.Append("LogDate=\"" + items.LogDate.ToString("MM/dd/yyyy HH:mm:ss") + "\" ");
str.Append(" />");
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
str.Append("</
data
>");
SessionLogSmsRequest = str.ToString();
}
}
}
i've debug the code with firebug and fiddler and its there the json result, but radgrid keep show "no records to display"
please help me, thanks
regards
dimas