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

Object doesn't support property or method 'get_masterTableView'

4 Answers 165 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Ahmed Gamil
Top achievements
Rank 1
Ahmed Gamil asked on 14 May 2014, 11:10 AM
Hi,

I was working on a small sample that will populate a RadGrid using client side code and when I tried using 'get_masterTableView' function the script threw the following error:
"Object doesn't support property or method 'get_masterTableView'"

Here's my code:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestWebMethodCall.aspx.cs" Inherits="RestfulServiceClientApp.TestWebMethodCall" %>
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
 
<!DOCTYPE html>
 
<head runat="server">
    <title></title>
</head>
<body>
     <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
         <script src="Scripts/jquery-1.11.1.min.js"></script>
         <script type="text/javascript">
            //<![CDATA[
             $(document).ready(function () {
                 alert('DOM Ready !');
                 $('<%=RadAjaxLoadingPanel1.ClientID%>').show('<%=grd_ajaxifiedGrid.ClientID %>');
                 PageMethods.GetData(successMethod);
 
                 function successMethod(result) {
                     alert(result);
                     var masterTableView = $('<%=grd_ajaxifiedGrid.ClientID %>').get_masterTableView();
                     masterTableView.set_datasource(result);
                     masterTableView.dataBind();
                     $('<%=RadAjaxLoadingPanel1.ClientID%>').hide('<%=grd_ajaxifiedGrid.ClientID %>');
                 }
             });
 
            //]]>
        </script>
    </telerik:RadCodeBlock>
    <form id="form1" runat="server">
        <telerik:RadScriptManager runat="server" ID="scrptmgr_radScriptManager" EnablePageMethods="true"></telerik:RadScriptManager>
        <telerik:RadGrid ID="grd_ajaxifiedGrid" runat="server" EnableViewState="false" CellSpacing="-1" GridLines="Both" ClientIDMode="Static"
            Width="200" Height="400"></telerik:RadGrid>
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default"></telerik:RadAjaxLoadingPanel>
        <div>
        </div>
    </form>
</body>
</html>

and here's my Web Method in the code behind:

[WebMethod]
        public static List<string> GetData()
        {
            List<string> myLst = new List<string>();
            myLst.Add("Test1");
            myLst.Add("Test2");
            myLst.Add("Test3");
            myLst.Add("Test4");
            myLst.Add("Test5");
            return myLst;
        }

Please, help.

Many thanks in advance.

4 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 14 May 2014, 12:14 PM
Hi Ahmed,

Please try the following JavaScript to access the MasterTableView of RadGrid.

JavaScript:
var masterTableView = $find('<%=grd_ajaxifiedGrid.ClientID %>').get_masterTableView();

Thanks,
Princy.
0
Ahmed Gamil
Top achievements
Rank 1
answered on 14 May 2014, 12:39 PM
I did try it but it raised an error "Unable to get property 'set_datasource' of undefined or null reference"
0
Accepted
Princy
Top achievements
Rank 2
answered on 15 May 2014, 08:19 AM
Hi Ahmed,

This error occurs when the MasterTableView is accessed before the RadGrid is loaded. Please take a look into the following code snippet I tried to bind the RadGrid on page load.

ASPX:
<telerik:RadGrid ID="grd_ajaxifiedGrid" runat="server"  EnableViewState="false" CellSpacing="-1" GridLines="Both" Width="200" Height="400">
    <MasterTableView>
        <Columns>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" ></asp:Label>
                </ItemTemplate>
            </telerik:GridTemplateColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>
C#: 
protected override void OnInit(System.EventArgs e)
{
    base.OnInit(e);
    grd_ajaxifiedGrid.NeedDataSource += new Telerik.Web.UI.GridNeedDataSourceEventHandler(RadGrid1_NeedDataSource);
}
void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    grd_ajaxifiedGrid.DataSource = new List<string>();
}
[WebMethod]
public static List<string> GetData()
{
    List<string> myLst = new List<string>();
    myLst.Add("Test1");
    myLst.Add("Test2");
    myLst.Add("Test3");
    myLst.Add("Test4");
    myLst.Add("Test5");
    return myLst;
}
 
JavaScript:
$(document).ready(function () {
    PageMethods.GetData(successMethod);
    function successMethod(result) {
        var masterTableView = $find('<%=grd_ajaxifiedGrid.ClientID %>').get_masterTableView();
        masterTableView.set_dataSource(result);
        masterTableView.dataBind();
    }
});

Thanks,
Princy.
0
Ahmed Gamil
Top achievements
Rank 1
answered on 15 May 2014, 02:13 PM
Many thanks.. It, finally, worked.
Tags
Grid
Asked by
Ahmed Gamil
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Ahmed Gamil
Top achievements
Rank 1
Share this question
or