Question

Je suis donc été marteler sur ce problème tous les jours.J'ai un LinqDataSource qui pointe vers mon modèle et un GridView qu'il consomme.Lorsque je tente de faire une mise à jour sur le GridView, il ne met pas à jour le sous-jacent de la source de données.J'ai pensé qu'il pourrait avoir à faire avec la LinqDataSource, j'ai donc ajouté un SqlDataSource et la même chose arrive.Le aspx est comme suit (le code-behind de la page est vide):

  <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>

Qu'est-ce qui me manque ici?Ce problème me conduire fou.

Était-ce utile?

La solution 2

Il s'avère que nous avons eu un DataBind() appel dans le Page_Load de la page maître du fichier aspx qui a été probablement à l'origine de l'état de la GridView pour obtenir jeté à chaque chargement de page.

Comme une note de mise à jour les paramètres d'une requête LINQ ne sont pas requis, sauf si vous voulez les mettre certains non-null par défaut.

Autres conseils

Il vous manque de l' <UpdateParameters> les sections de vos Sources de données.

LinqDataSource.UpdateParameters

SqlDataSource.UpdateParameters

C'est un total de tir dans le noir, puisque je n'ai pas utilisé ASP à tous.

J'ai été juste d'apprentissage et de syntaxe XAML WPF, qui semble être très similaire à ce que vous avez posté ci-dessus, et je sais que pour certains contrôles de l'INTERFACE utilisateur, vous devez spécifier le mode de liaison à deux de manière à obtenir des mises à jour dans les deux directions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top