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

Trying to do clientside databinding to web service

1 Answer 57 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Jon
Top achievements
Rank 1
Jon asked on 13 Feb 2012, 11:43 PM
Greetings,

  I am trying to do client side databind to a webservice.  I have created a simple test service and a test page that is almost identical to the ones used in the demos.  I have updated my telerik controls and jquery.  I am getting an error with the set_dataSource() function off of the grid.  When debugging the js I get a null value for "tableView'.  Here is the code I am using.

<%

 

@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>

<!

 

 

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<

 

 

html xmlns="http://www.w3.org/1999/xhtml">

<

 

 

head id="Head1" runat="server">

 

<telerik:radcodeblock id="RadCodeBlock1" runat="server">

 

<script src="../scripts/jquery-1.7.1.min.js" type="text/javascript"></script>

 

<script type="text/javascript">

//<![CDATA[

 

function pageLoad(sender, args) {

getData();

}

 

function getData() {

 TestDataService.TestDataRows(updateGrid);

}

 

function updateGrid(result) {

 

var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView();

tableView.set_dataSource(result);

tableView.dataBind();

}

 

function OnRowDataBound(sender, args) {

 

var spanControl = args.get_item().get_cell("Change").getElementsByTagName('span')[0];

 

var image = args.get_item().get_cell("Change").getElementsByTagName('img')[0];

 

if (args.get_dataItem().Change > 0) {

image.style.display =

 

"";

image.src =

 

"Images/up.gif";

spanControl.style.color =

 

"green";

}

 

else if (args.get_dataItem().Change < 0) {

image.style.display =

 

"";

image.src =

 

"Images/down.gif";

spanControl.style.color =

 

"red";

}

 

else {

image.style.display =

 

"none";

spanControl.style.color =

 

"";

}

}

 

//]]>

 

 

</script>

 

</telerik:radcodeblock>

</

 

 

head>

<

 

 

body class="BODY">

 

<form runat="server" id="mainForm" method="post">

 

<telerik:radscriptmanager id="RadScriptManager" runat="server">

 

<Services>

 

<asp:ServiceReference Path="~/WebServices/TestDataService.asmx" />

 

</Services>

 

</telerik:radscriptmanager>

 

<!-- content start -->

 

<h3 class="qsfSubtitle">

RadGrid bound to live data:

 

</h3>

 

<telerik:radgrid id="RadGrid1" autogeneratecolumns="false" runat="server">

 

<MasterTableView TableLayout="Fixed">

 

<Columns>

 

<telerik:GridBoundColumn DataField="OID" UniqueName="OID" HeaderText="OID">

 

</telerik:GridBoundColumn>

 

</Columns>

 

</MasterTableView>

 

</telerik:radgrid>

 

<!-- content end -->

 

</form>

</

 

 

body>

</

 

 

html>

1 Answer, 1 is accepted

Sort by
0
Tsvetoslav
Telerik team
answered on 14 Feb 2012, 11:40 AM
Hello Jon,

You need the following empty event handler to the grid's OnCommand event so that the master table view creates a basic structure to populate with the web service data afterwards:

<ClientEvents OnCommand="function(){}" />

Regards,

Tsvetoslav
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
Tags
Grid
Asked by
Jon
Top achievements
Rank 1
Answers by
Tsvetoslav
Telerik team
Share this question
or