簡體   English   中英

在Telerik RadGrid上調用grid.get_selectedItems時出現JavaScript TypeError

[英]Javascript TypeError when calling grid.get_selectedItems on Telerik RadGrid

我有一個RadGridClientSelectColumn 當用戶進行選擇並單擊一個按鈕時,我需要獲取所有選中的項目。 根據Telerik文檔 ,此代碼應該有效。 我已經不得不使用getElementById因為$find由於某種原因無法正常工作。

function GetSelectedItems() {
        var grid = document.getElementById("<%= RadGrid1.ClientID %>");
        var selectedRows = grid.get_selectedItems(); //ERROR
        var selectedLabIDs = [];

        for (var i = 0; i < selectedRows.length; i++) {
            var selectedLabID = selectedRows[i].getDataKeyValue("LabID");
            selectedLabIDs.push(selectedLabID);
        }

        var list = selectedLabIDs.join('|');

        MergePDF(list);
    }

當按鈕調用GetSelectedItems()我得到以下信息:

TypeError:grid.get_masterTableView不是函數

為什么是這樣?

編輯:這是RadGrid和頁面其余部分的標記。

<telerik:RadScriptManager runat="server" ID="RadScriptManager1">
    <Scripts>
        <%--Needed for JavaScript IntelliSense in VS2010--%>
        <%--For VS2008 replace RadScriptManager with ScriptManager--%>
        <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
        <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
        <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
    </Scripts>
</telerik:RadScriptManager>

<telerik:RadSkinManager ID="QsfSkinManager" runat="server" Skin="Metro" />
<telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All" EnableRoundedCorners="false" />
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server">

<telerik:RadGrid ID="RadGrid1" GridLines="None" runat="server" AutoGenerateColumns="False"
    AllowSorting="True"
    AllowMultiRowSelection="true"
    AllowPaging="True"
    OnNeedDataSource="RadGrid1_NeedDataSource" OnDataBound="RadGrid1_DataBound">
    <HeaderStyle ForeColor="White" HorizontalAlign="Center" />
    <ClientSettings>
        <Selecting AllowRowSelect="true" />
        <ClientEvents OnRowSelected="RowSelected" />
    </ClientSettings>
    <MasterTableView DataKeyNames="CustReview, MachineName, LabID, MachCond, LubCond, PointID, CustEQUID, CANote, rptNotes, Feedback, ReportType" ClientDataKeyNames="LabID">
        <Columns>
            <telerik:GridBoundColumn DataField="CustReview" HeaderText="Customer Review" DataType="System.String" />
            <telerik:GridBoundColumn DataField="PlantName" HeaderText="Plant Name" DataType="System.String" />
            <telerik:GridBoundColumn DataField="MachineName" HeaderText="Machine" DataType="System.String" />
            <telerik:GridBoundColumn DataField="CustEQUID" HeaderText="Customer ID" DataType="System.String" />
            <telerik:GridBoundColumn DataField="LabID" HeaderText="Report #" DataType="System.Int32" />
            <telerik:GridClientSelectColumn UniqueName="SelectColumn" />
            <telerik:GridBoundColumn DataField="ReportType" HeaderText="Type" DataType="System.String" />
            <telerik:GridImageColumn HeaderText="Mach" UniqueName="MachineConditionImage" />
            <telerik:GridImageColumn HeaderText="Lub" UniqueName="LubricantConditionImage" />
            <telerik:GridDateTimeColumn DataField="ReceivedDate" DataFormatString="{0:d}" UniqueName="ReceivedDateColumn" HeaderText="Rec. Date" />
            <telerik:GridHyperLinkColumn HeaderText="Feedback" UniqueName="FeedbackColumn" />
            <telerik:GridHyperLinkColumn HeaderText="Corrective Action" UniqueName="CorrectiveActionColumn" />
            <telerik:GridImageColumn HeaderText="Notes" UniqueName="NotesColumn" />

            <%--Hidden Columns --%>
            <telerik:GridBoundColumn DataField="PointID" DataType="System.Int32" Visible="false" />
            <telerik:GridBoundColumn DataField="MachCond" DataType="System.Int32" Visible="false" />
            <telerik:GridBoundColumn DataField="LubCond" DataType="System.Int32" Visible="false" />
            <telerik:GridBoundColumn DataField="rptNotes" DataType="System.String" Visible="false" />
            <telerik:GridBoundColumn DataField="Feedback" DataType="System.String" Visible="false" />
            <telerik:GridBoundColumn DataField="CANote" DataType="System.String" Visible="false" />
            <%--Hidden Columns --%>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

<input type="hidden" id="SelectList" runat="server" />
<input type="hidden" id="PlantID" runat="server" />
<input type="hidden" id="RouteID" runat="server" />
<input type="hidden" id="NumberOfResults" runat="server" />

</telerik:RadAjaxPanel>
<telerik:RadWindowManager ID="RadWindowManager1" runat="server"></telerik:RadWindowManager>

您看到grid.get_masterTableView不是函數的錯誤的原因是,您的var grid不是有效的RadGrid。 您可以像這樣獲得網格:

var grid = $find("RadGrid1");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM