У меня есть иерархическая 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 всех кнопок в одном столбце - Обновить скрытое поле, чтобы определить, какая кнопка выбрано
Спасибо за помощь