ASPxGridView Тайм-аут POST - PullRequest
       13

ASPxGridView Тайм-аут POST

0 голосов
/ 17 февраля 2010

У меня есть ASPxGridView с DetailRow, в этой строке есть три дополнительных ASPxGridView.Каждая деталь ASPxGridView содержит шаблоны EmptyDataRow со ссылкой для создания новой строки:

<a href="javascript:gridViewDetails1.AddNewRow();">AddNewRecord</a>

Когда основные строки ASPxGridView равны 1 или 2, тогда новые строки в подробных сетках добавляются нормально, но если в основных строках ASPxGridView около 10 или болеезатем, когда я нажимаю на ссылку на подробные сетки, чтобы добавить новую строку, панель загрузки работает неограниченное время, и FireBug-> Net показывает, что состояние POST истекло, а время составляет около 1 секунды.

Как я могу его восстановить?

К AGoodDisplayName :

привязаны ли сеточные представления строк подробностей к чему-либо?

да, конечно, внутри строки сведенийиз основного gridView есть 3 других gridView, и у каждого из них есть отдельный ObjectDataSource.

Вы расширяете больше чем строку за один раз?

Нет, у меня есть толькоодна строка за раз:

AllowOnlyOneMasterRowExpanded="true"

Можем ли мы увидеть часть разметки?

Да:

<asp:ObjectDataSource ID="dsMaster" runat="server" TypeName="..." SelectMethod="...">
</asp:ObjectDataSource>
<dxwgv:ASPxGridView ID="gridViewMaster" ClientInstanceName="gridViewMaster" runat="server" DataSourceID="dsMaster">
    <Templates>
        <DetailRow>
            <%--first of details gridView--%>
            <asp:ObjectDataSource ID="dsDetail1" runat="server" TypeName="..." SelectMethod="...">
            </asp:ObjectDataSource>
            <dxwgv:ASPxGridView ID="gridViewDetail1" ClientInstanceName="gridViewDetail1" runat="server" DataSourceID="dsDetail1">
                <Templates>
                    <EmptyDataRow>
                        <a href="javascript:gridViewDetail1.AddNewRow();">AddNewRecord</a>
                    </EmptyDataRow>
                </Templates>
            </dxwgv:ASPxGridView>
            <%--next others detail gridViews--%>
        </DetailRow>
    </Templates>
</dxwgv:ASPxGridView>

1 Ответ

0 голосов
/ 18 февраля 2010

У меня были некоторые проблемы, подобные этой, и я смог решить эту проблему. Разница между моей и вашей проблемой заключается в том, что я использовал DevExpress XpoDataSource (его версия ObjectDataSource для DevExpress).

  1. Во время разработки я установил источник данных для возврата 0 записей. Таким образом, при загрузке страницы нет данных, которые можно получить (это может быть дорого для 3-х сеток и 3-х источников данных), если для FilterExpression задать значение, подобное «ID = 0». Это, казалось, имело наибольшую разницу в производительности.

  2. Очевидно, что вы хотите вернуть более 0 записей, поэтому вам необходимо установить фильтрацию для события "BeforePerformDataSelect" в сетке сведений.

    protected void ASPxGridView1_BeforePerformDataSelect(object sender, EventArgs e)
    {
       dsDetail1.FilterExpression = "MasterRecordID = " + (sender as ASPxGridView).GetMasterRowKeyValue().ToString();
    }
    

Я не уверен, что это решит вашу проблему, но это то, что я сделал, и это помогло.

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