Кнопка "Найти" в области DetailRow объекта ASPxGridView

У меня есть вложенный ASPxGridView внутри другого ASPxGridView. Вторая сетка находится в области Шаблон DetailRow.

В зависимости от роли пользователя мне нужно включить / отключить кнопки (на стороне сервера).

Я могу найти и затем выполнить действия с кнопками, когда они расположены в области GridViewDataColumn (см. Кнопки buttonDocumentTypeEdit и buttonDocumentSubtypeEdit). Я использую событие OnHtmlDataCellPrepared для этой цели.

Но я не могу найти способ найти кнопку buttonDocumentSubtypeAdd на стороне сервера, которая находится в области DetailRow.

ASPxGridView:

<dx:ASPxGridView ID="gridDocumentTypes" ClientInstanceName="gridDocumentTypes" runat="server" AutoGenerateColumns="False"
                    DataSourceID="odsDocumentTypes" KeyFieldName="Id" Width="100%"
                    OnHtmlDataCellPrepared="gridDocumentTypes_OnHtmlDataCellPrepared">
    <Columns>
        <dx:GridViewDataTextColumn Caption="Document Type" FieldName="Name"/>
        <dx:GridViewDataColumn Name="columnDocumentTypeActions">
            <DataItemTemplate>
                <dx:ASPxButton ID="buttonDocumentTypeEdit" runat="server" Text="Edit"/>
            </DataItemTemplate>
        </dx:GridViewDataColumn>
    </Columns>
    <Templates>
        <DetailRow>

            <dx:ASPxButton ID="buttonDocumentSubtypeAdd" ClientInstanceName="buttonDocumentSubtypeAdd" runat="server"
                            Text= "Add Subtype" AutoPostBack="False" UseSubmitBehavior="False">
            </dx:ASPxButton>

            <dx:ASPxGridView ID="gridDocumentSubtypes" runat="server" ClientInstanceName="gridDocumentSubtypes"
                                DataSourceID="GetDocumentSubtypes" KeyFieldName="Id" Width="100%">
                <Columns>
                    <dx:GridViewDataColumn FieldName="Name" Caption="Document Subtype" />

                    <dx:GridViewDataColumn Name="columnDocumentSubtypeActions">
                        <DataItemTemplate>
                            <table>
                                <tr>
                                    <td style="padding-right: 5px">
                                        <dx:ASPxButton ID="buttonDocumentSubtypeEdit" runat="server" Text="Edit">
                                        </dx:ASPxButton>
                                    </td>
                                </tr>
                            </table>
                        </DataItemTemplate>
                    </dx:GridViewDataColumn>
                </Columns>
            </dx:ASPxGridView>
        </DetailRow>
    </Templates>
</dx:ASPxGridView>

Код сервера:

protected void gridDocumentTypes_OnHtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
    {
        if (e.DataColumn.Name == "columnDocumentTypeActions")
        {
            var buttonEdit = (ASPxButton)gridDocumentTypes.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "buttonDocumentTypeEdit");

            //TODO: action
        }
    }

0 ответов

Другие вопросы по тегам