This is a migrated thread and some comments may be shown as answers.

RadGrid wont bind the dataset

2 Answers 87 Views
Grid
This is a migrated thread and some comments may be shown as answers.
dimas
Top achievements
Rank 1
dimas asked on 04 Nov 2011, 07:20 AM
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
<%@ 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

2 Answers, 1 is accepted

Sort by
0
dimas
Top achievements
Rank 1
answered on 04 Nov 2011, 01:00 PM
really need help here

thanks
0
dimas
Top achievements
Rank 1
answered on 05 Nov 2011, 03:12 PM
finally i solved my self.. instead  im passing the dataset in self hosted web service, im passing type List<T> object, and its works
thanks to myself  
Tags
Grid
Asked by
dimas
Top achievements
Rank 1
Answers by
dimas
Top achievements
Rank 1
Share this question
or