RadLiveTile - Unexpected token ERROR

1 posts, 0 answers
  1. Yves
    Yves avatar
    1 posts
    Member since:
    May 2013

    Posted 16 Mar Link to this post

    Hi,

    I'm having issues with RadLive capturing the value returned by my web service. I believe the web service is returning an xml while RadLiveTile is expecting a jason format. Can you please help me here?

    WebService business logic:

    [DataContract]
       public class GarageMap
       {
           [DataMember]
           public int OccupiedSpaces{set;get;}
           public GarageMap() { }
           public GarageMap(int propertyid)
           {
               loadMap(propertyid);
           }
           private void loadMap(int property_id)
           {
               DBTransaction Transaction = new DBTransaction();
               DBTransactionParameter param = new DBTransactionParameter();
               param.Type = SqlDbType.VarChar;
               param.Name = "@PropertyID";
               param.Value = "3";
               List<DBTransactionParameter> plist = new List<DBTransactionParameter>();
               plist.Add(param);
               DataTable DT = Transaction.Select("sp_GetAllOccupiedSpacesCount", true, plist);
               DataRow dr = DT.Rows[0];
               OccupiedSpaces= Convert.ToInt32( dr["AllOccupiedSpaceCount"].ToString());      
           }
       }

    WebMethod:

    [WebMethod]    
           [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet=false)]
           //[ScriptMethod(UseHttpGet = true)]
           public GarageMap OccupiedSpaceCount()
           {
               //string j = "{'test': 1}";
               ////return j;
               return new GarageMap(3);  
     
           }

    ASPX Page:

    <div class="tilesWrapper">
                <telerik:RadLiveTile ID="DellTile" NavigateUrl="http://finance.yahoo.com/q?s=FB&d=t" runat="server" UpdateInterval="3000" Value="FB">
                    <Title ImageUrl=""></Title>                 
                </telerik:RadLiveTile>
                <telerik:RadLiveTile ID="GoogleTile" NavigateUrl="http://finance.yahoo.com/q?s=GOOG&d=t" runat="server" UpdateInterval="4000" Value="GOOG">
                    <Title ImageUrl="../../images/LiveTiles/logo_Google.png"></Title>
                </telerik:RadLiveTile>
                <telerik:RadLiveTile ID="YahooTile" NavigateUrl="http://finance.yahoo.com/q?s=YHOO&d=t" runat="server" UpdateInterval="5000" Value="YHOO">
                    <Title ImageUrl="../../images/LiveTiles/logo_Yahoo.png"></Title>
                </telerik:RadLiveTile>
                <telerik:RadLiveTile ID="MicrosoftTile" NavigateUrl="http://finance.yahoo.com/q?s=MSFT&d=t" runat="server" UpdateInterval="6000" Value="MSFT">
                    <Title ImageUrl="../../images/LiveTiles/logo_Microsoft.png"></Title>
                </telerik:RadLiveTile>
            </div>

     Code Behind:

    protected void Page_Load(object sender, EventArgs e)
           {
               InitializeTile(DellTile);
               //InitializeTile(GoogleTile);
               //InitializeTile(YahooTile);
               //InitializeTile(MicrosoftTile);
           }
           private void InitializeTile(RadLiveTile tile)
           {
               tile.CssClass = "liveTile";
               tile.Target = "_blank";
     
               //The text between the #= # characters is replaced by the corresponding properties of the data item
               //returned on the web service response.
               tile.ClientTemplate = @"
                   <div class=""tileClientTemplate"">
                       <div><strong>change:</strong> <img src=""../Assets/Icons/arrow_down.png"" alt="""" /> #= OccupiedSpaces #</div>
                       <div><strong>stock quote:</strong> #= OccupiedSpaces #</div>
                       <div><strong>updated:</strong> #=  OccupiedSpaces #</div>
                   </div>
               ";
     
               //Configure the web service providing the live data.
               tile.WebServiceSettings.Path = "http://ws.smartparkllc.com/Dashboard.asmx";
               tile.WebServiceSettings.Method = "OccupiedSpaceCount";
     
               //Attach client side event handlers.
               tile.OnClientDataLoaded = "tileDataLoaded";
               tile.OnClientDataLoadingError = "tileDataLoadingError";
               tile.OnClientTemplateDataBound = "tileClientTemplateDataBound";
           }

     

    Java Script File:

    <script type="text/javascript">
                 //alert("boom");
                 function tileDataLoadingError (sender, args) {
                args.set_cancelErrorAlert(true);                                       
            }
     
            //The dataLoaded client side event occurs after the data request returns the data successfully.
                 function tileDataLoaded(sender, args) {
                     //
                var data = args.get_data();
                //format the received date property
                //data.LastUpdated = data.LastUpdated.format("yyyy.MM.dd HH:mm:ss");
            }
     
            //The templateDataBound client-side event occurs after the client template is data bound.
                function tileClientTemplateDataBound(sender, args) {
                    alert("boom");
                    if (args.get_dataItem().Change >= 0) {
                         
                        args.set_html(args.get_html().replace("Assets/Icons/arrow_down.png", "Assets/Icons/arrow_up.png"));
                    }
                }
             </script>

     

    Browser Webservice call output:

    <?xml version="1.0" encoding="utf-8"?>
      <OccupiedSpaces>3</OccupiedSpaces>
    </GarageMap>
     
     Browser Console Error:

     

    Uncaught SyntaxError: Unexpected token <

     

Back to Top