0

我的 WebForms 页面上的 GridView 有问题。我希望也许你能帮助我。

我有一个由 LinqDataSource 通过实体框架绑定到 SQL Server 视图的网格。View 基本上汇总了其中一张表中的数据。在我的页面上,我允许对该表进行一些更改,我在不同的上下文中使用实体框架进行更新。问题是,在 PostBack 之后,我总是会看到之前一次编辑的更改。

例如: 1. 我有一个值为“Matthew”的实体。2.我编辑到“约翰”->回发=>我看到“马修”。3. 我编辑到“Mick”-> postback => 我看到了“John”。

我尝试禁用网格的视图状态和行缓存 - 没有成功。

我会很感激任何建议。

谢谢!

                <p>
                <asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="WebApplication2.Database1Entities" EntityTypeName="" TableName="Clients">
                </asp:LinqDataSource>
                <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="LinqDataSource1" KeyFieldName="id" EnableRowsCache="False">
                    <Columns>
                        <dx:GridViewDataTextColumn FieldName="id" VisibleIndex="0">
                        </dx:GridViewDataTextColumn>
                        <dx:GridViewDataTextColumn FieldName="name" VisibleIndex="1">
                        </dx:GridViewDataTextColumn>
                    </Columns>
                </dx:ASPxGridView>
            </p>
            <p>
                <dx:ASPxTextBox ID="ASPxTextBox1" runat="server" Width="170px">
                </dx:ASPxTextBox>
                <dx:ASPxButton ID="ASPxButton1" runat="server" Text="ASPxButton" OnClick="ASPxButton1_Click">
                </dx:ASPxButton>
            </p>


    protected void ASPxButton1_Click(object sender, EventArgs e)
            {
                var ent = new Database1Entities();
                var itemToUpdate = ent.Clients.FirstOrDefault(p => p.id == 1);
                itemToUpdate.name = ASPxTextBox1.Text;
                ent.SaveChanges();
        }
4

1 回答 1

0

马修,

我建议您使用 ASPxGridView 的编辑事件。看看这个例子:

这是一个 Code Central 示例,因此您可以下载整个解决方案并在本地运行它:

如果仍然没有帮助,请联系 DevExpress 支持团队,他们可以为您提供帮助: DevExpress 支持

于 2013-04-11T18:19:59.657 回答