GridView ne sera pas de mise à jour de la source de données sous-jacente
-
09-06-2019 - |
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.
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.
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.