我的 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();
}