GridView não atualização de fonte de dados subjacente
-
09-06-2019 - |
Pergunta
Então, eu estou sido batendo sobre este problema todos os dias.Eu tenho um LinqDataSource que aponta para o meu modelo e um GridView que consome.Quando eu tentar fazer uma atualização no GridView, ele não atualizar a fonte de dados subjacente.Eu pensei que poderia ter a ver com o LinqDataSource, então eu adicionei um SqlDataSource e acontece a mesma coisa.O aspx é como segue (o código-atrás de página está vazia):
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Data Source=devsql32;Initial Catalog=Steam;Persist Security Info=True;"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [LangID], [Code], [Name] FROM [Languages]" UpdateCommand="UPDATE [Languages] SET [Code]=@Code WHERE [LangID]=@LangId">
</asp:SqlDataSource>
<asp:GridView ID="_languageGridView" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="LangId"
DataSourceID="SqlDataSource1">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="LangId" HeaderText="Id" ReadOnly="True" />
<asp:BoundField DataField="Code" HeaderText="Code" />
<asp:BoundField DataField="Name" HeaderText="Name" />
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="_languageDataSource" ContextTypeName="GeneseeSurvey.SteamDatabaseDataContext" runat="server" TableName="Languages" EnableInsert="True" EnableUpdate="true" EnableDelete="true">
</asp:LinqDataSource>
O que eu estou faltando aqui?Esse problema está me deixando louco.
Solução 2
Acontece que tivemos um DataBind() na chamada Page_Load da página principal do arquivo aspx que foi, provavelmente, fazendo com que o estado do GridView para obter jogou fora em cada carregamento de página.
Como nota - atualização de parâmetros de uma consulta LINQ não são necessários, a menos que você deseja definir-lhes alguns não-padrão null.
Outras dicas
Você está ausente o <UpdateParameters> seções de suas Fontes de dados.
Isso é um total tiro no escuro, pois eu não tenho usado ASP em tudo.
Eu fui aprendendo e WPF XAML, que parece ser muito similar ao que você postou acima e eu sei que, para alguns controles de INTERFACE do usuário que você precisa para especificar o modo de ligação de duas vias, a fim de obter as atualizações em ambas as direções.