ASPxGridView POST超时

时间:2010-02-17 12:10:59

标签: asp.net timeout aspxgridview

我有一个带有DetailRow的ASPxGridView,在这一行中还有三个额外的ASPxGridViews。每个细节ASPxGridView都包含EmptyDataRow模板,其中包含用于创建新行的链接:

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

当主ASPxGridView行为1或2时,详细网格中的新行添加精细,但如果在主ASPxGridView行中大约10或更多,那么当我点击详细网格链接添加新行时,加载面板会无限时间和FireBug-&gt; Net显示POST的状态为超时,时间约为1秒。

我该如何修理?

AGoodDisplayName

  

是绑定到的详细行gridview   什么?

是的当然,在master 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 :(得分:0)

我以前遇到过这样的问题,并且能够解决这个问题。我和你的问题之间的区别在于我使用的是DevExpress XpoDataSource(它的DevExpress版本的ObjectDataSource)。

  1. 在设计时我设置数据源以恢复0条记录。这样,通过将FilterExpression设置为“ID = 0”,在页面加载时不会检索数据(这对于3个网格和3个数据源来说可能是昂贵的)。这似乎是表现最明显的表现。

  2. 显然你想要带回0条以上的记录,所以你需要设置详细网格的“BeforePerformDataSelect”事件的过滤。

    protected void ASPxGridView1_BeforePerformDataSelect(object sender, EventArgs e)
    {
       dsDetail1.FilterExpression = "MasterRecordID = " + (sender as ASPxGridView).GetMasterRowKeyValue().ToString();
    }
    
  3. 我不确定这是否能解决您的问题,但这就是我所做的并且有所帮助。