Telerik RadGrid - доступ к подробной таблице главной таблицы с использованием javascript - PullRequest
0 голосов
/ 29 мая 2020

У меня есть иерархическая Radgrid с одной таблицей деталей.

В таблице деталей (названной Criteria) у меня есть кнопки (названные btnIndicator1 для столбца 1 и btnIndicator2 для столбца 2)

Только одна кнопка для каждого столбца можно выбрать, выбранная кнопка синего цвета, а все невыбранные кнопки должны быть белыми.

Я пытаюсь получить доступ к критериям GridTableView, используя javascript

Это вот где я нахожусь: Radgrid с GridTableView:

    <tlk:RadGrid ID="GV" runat="server" AutoGenerateColumns="false" CellSpacing="0"
        Skin="" MasterTableView-HierarchyLoadMode="Client"
        OnNeedDataSource="GV_NeedDataSource" OnDetailTableDataBind="GV_DetailTableDataBind"
        OnItemDataBound="GV_ItemDataBound"
        EnableHeaderContextMenu="false" EnableHeaderContextFilterMenu="false">

        <ClientSettings EnableAlternatingItems="false" EnablePostBackOnRowClick="true" AllowRowsDragDrop="true">

            <Selecting AllowRowSelect="false" EnableDragToSelectRows="false" />
            <Scrolling AllowScroll="false"></Scrolling>
        </ClientSettings>        
        
        <MasterTableView Name="Question" TableLayout="Fixed" DataKeyNames="MAppID, QID, RubricCount"
            Width="95%" EnableHierarchyExpandAll="false">
            <DetailTables>
                <tlk:GridTableView Name="Criteria" CssClass="DisplayGridView" EnableHierarchyExpandAll="false"
                    Width="90%" runat="server" ShowHeader="true" DataKeyNames="QID, IndicatorSelected,Grade">
                    <ParentTableRelation>
                        <tlk:GridRelationFields DetailKeyField="QID" MasterKeyField="QID" />
                    </ParentTableRelation>
                    <Columns>
                        <tlk:GridBoundColumn DataField="Grade" UniqueName="Grade" runat="Server" HeaderStyle-Width="10%"
                            HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ItemStyle-Height="90px" />
                        <tlk:GridTemplateColumn HeaderText="Indicator1" UniqueName="Indicator1" Visible="true"
                            ItemStyle-Height="90px" ItemStyle-HorizontalAlign="Left" ItemStyle-Wrap="true">
                            <ItemTemplate>
                                <asp:Button ID="btnIndicator1" runat="server" Width="100%" Height="100%" Text='<%# Eval("Indicator1") %>'
                                    OnCommand="btn_Command" CommandArgument='<%# Eval("IsIndicator1") %>' CommandName="1" OnClientClick="SelectGrade(this, 1); return false;" />
                                <asp:HiddenField ID="hfIsIndicator1" Value='<%# Eval("IsIndicator1") %>' runat="Server" />
                                <asp:HiddenField ID="hfGrade" Value='<%# Eval("Grade") %>' runat="Server" />
                                <asp:HiddenField ID="hfGradeNo" Value='<%# Eval("GradeNo") %>' runat="Server" />
                                <asp:HiddenField ID="hfColNo" runat="Server" />
                            </ItemTemplate>
                        </tlk:GridTemplateColumn>
                        <tlk:GridTemplateColumn HeaderText="Indicator2" UniqueName="Indicator2" Visible="true"
                            ItemStyle-Height="90px" ItemStyle-HorizontalAlign="Left">
                            <ItemTemplate>
                                <asp:Button ID="btnIndicator2" runat="server" Width="100%" Height="100%" Text='<%# Eval("Indicator2") %>'
                                    OnCommand="btn_Command" CommandArgument='<%# Eval("IsIndicator2") %>' CommandName="2"  OnClientClick="SelectCriteria(this, 2); return false;"/>
                                <asp:HiddenField ID="hfIsIndicator2" Value='<%# Eval("IsIndicator2") %>' runat="Server" />
                            </ItemTemplate>
                        </tlk:GridTemplateColumn>
                        <tlk:GridTemplateColumn HeaderText="Mark" HeaderStyle-Width="10%" HeaderStyle-HorizontalAlign="Center"
                            ItemStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <asp:Label ID="lblMark" Text='<%# Eval("sMark") %>' runat="server" Width="100%" />
                            </ItemTemplate>
                        </tlk:GridTemplateColumn>
                    </Columns>
                </tlk:GridTableView>
            </DetailTables>

            <Columns>
                <tlk:GridTemplateColumn HeaderText="Question" HeaderStyle-Width="20%" HeaderStyle-HorizontalAlign="Left"
                    ItemStyle-Height="15px">
                    <ItemTemplate>
                        <asp:Label ID="lblQuestionNo" Text='<%# Eval("QuestionNo") %>' runat="server" Width="98%"
                            CssClass='<%# Eval("CssClass") %>' />
                        <asp:HiddenField ID="hfMark" Value='<%# Eval("Mark") %>' runat="server" />
                        <asp:HiddenField ID="hfScore" Value='<%# Eval("Score") %>' runat="server" />
                    </ItemTemplate>
                </tlk:GridTemplateColumn>
            </Columns>
        </MasterTableView>
        
    </tlk:RadGrid>        

И javascript для доступа к radgrid. Пока я могу получить доступ только к MasterTableView.

    function SelectGrade(obj, ColNo) {
        var grid = $find('<%= GV.ClientID %>');
        var masterTable = grid.get_masterTableView();
        var dataItems = masterTable.get_dataItems();

        for (var i = 0; i < dataItems.length; i++) {
            var item = dataItems[i];
            var GVCriteria = item.detailTable[0];
        }
    }

Как только я смогу прокрутить GridTableView, мне придется: - Изменить css всех кнопок в одном столбце - Обновить скрытое поле, чтобы определить, какая кнопка выбрано

Спасибо за помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...