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.

Foi útil?

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.

LinqDataSource.UpdateParameters

SqlDataSource.UpdateParameters

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top