【问题标题】:Looping RadGrid item in clientside在客户端循环 RadGrid 项目
【发布时间】:2014-05-13 00:38:54
【问题描述】:
  • 有一个 radgrid,其中一列作为复选框 项目模板。

    我想遍历这个 radgrid 的项目。并根据每个项目的 checkbox.checked 条件,启用单独的按钮控件。(在客户端使用 javascript)

  • 我已经为此编写了设备代码,但它没有提供所需的输出。 请问这是怎么回事。

Javascript:

<telerik:RadScriptBlock ID="scriptBlock1" runat="server">
<script type="text/javascript">
function checkRestrictionAcceptance() 
    {
        var masterTable = $find("<%=RGGroupedCartRestrictedAssets.ClientID%>").get_masterTableView();        
        var count = masterTable.get_dataItems().length;
        var checkbox;
        var item;
        for (var i = 0; i < count; i++) 
        {
            item = masterTable.get_dataItems()[i];
            checkbox = item.findElement("AcceptedCheckbox");
            alert(checkbox.checked);
            if (checkbox.checked) 
            {
                var DownloadButton = document.getElementById('DownloadButton');
                DownloadButton.enabled = false;
            }
        }
    }
 </script>
</telerik:RadScriptBlock>

aspx:

<telerik:RadGrid ID="RGGroupedCartRestrictedAssets" runat="server" DataSourceID="CslaDSGroupedCartRestrictedAssets" AutoGenerateColumns="False"
                    GridLines="None"  AllowPaging="True" AllowSorting="True" AllowFilteringByColumn="True" EnableEmbeddedSkins="false">

                    <MasterTableView  DataSourceID="CslaDSGroupedCartRestrictedAssets" DataKeyNames="RestrictionText">

                        <Columns>                                
                            <telerik:GridTemplateColumn>                                
                                <ItemTemplate>
                                    <asp:Checkbox ID="AcceptedCheckbox"  runat="server" />
                                </ItemTemplate>
                        </Columns>
                    </MasterTableView>
                </telerik:RadGrid>

<asp:Button ID="DownloadButton" runat="server" Text = "Test"  OnClientClick ="checkRestrictionAcceptance();"/>

【问题讨论】:

  • items = masterTable.get_dataItems(); checkbox = items[i].findElement("AcceptedCheckbox");

标签: javascript asp.net telerik radgrid


【解决方案1】:

您需要指定DownloadButton的clientID

 var DownloadButton = document.getElementById('<%=DownloadButton.ClientID%>');

【讨论】:

  • 实际上主要问题是在foreach循环之后,它无法获取“item”对象。不知道为什么会这样。
【解决方案2】:

我不确定您使用的是哪个浏览器,但我认为直接在 get_dataItems() 中使用“i”可能会导致 Firefox 出现问题。您的代码在 IE10 中使用 Telerik.Web.UI 2013.3.1324.45 对我来说运行良好 - 我得到了 checkbox.checked 的值。不过试试这个,它可能会有所帮助:

       function checkRestrictionAcceptance() {
        var masterTable = $find("<%=RGGroupedCartRestrictedAssets.ClientID%>").get_masterTableView();
        var count = masterTable.get_dataItems().length;
        var checkbox;
        var items = masterTable.get_dataItems();
        for (var i = 0; i < count; i++) {
            checkbox = items[i].findElement("AcceptedCheckbox");
            alert(checkbox.checked);
            if (checkbox.checked) {
                var downloadButton = document.getElementById('<%=DownloadButton.ClientID%>');
                downloadButton.enabled = false;
            }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    相关资源
    最近更新 更多