2008-09-09 8 views
1

Je suis donc sur ce problème toute la journée. J'ai un LinqDataSource qui pointe vers mon modèle et un GridView qui le consomme. Lorsque je tente d'effectuer une mise à jour sur GridView, il ne met pas à jour la source de données sous-jacente. Je pensais que cela pourrait avoir à faire avec le LinqDataSource, donc j'ai ajouté un SqlDataSource et la même chose arrive. Le aspx est comme suit (la page de code-derrière est vide):GridView ne mettra pas à jour la source de données sous-jacente

<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][email protected] WHERE [LangID][email protected]"> 
    </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> 

Que me manque ici? Ce problème me rend fou.

Répondre

1

Il se trouve que nous avons eu un appel DataBind() dans le Page_Load de la page principale du fichier ASPX qui était probablement à l'origine de l'état du GridView pour se faire secouer violemment sur chaque chargement de page.

En note - les paramètres de mise à jour pour une requête LINQ ne sont pas requis, sauf si vous voulez leur attribuer une valeur par défaut non nulle.

0

Ceci est un tir total dans l'obscurité puisque je n'ai pas utilisé ASP du tout.

Je viens d'apprendre XAML et WPF, ce qui semble être très similaire à ce que vous avez posté ci-dessus et je sais que pour certains contrôles d'interface utilisateur, vous devez spécifier le mode de liaison à deux voies afin d'obtenir mises à jour dans les deux sens.

Questions connexes