GridView no actualizará la fuente de datos subyacente
-
09-06-2019 - |
Pregunta
Así que estuve dándole vueltas a este problema todo el día.Tengo un LinqDataSource que apunta a mi modelo y un GridView que lo consume.Cuando intento realizar una actualización en GridView, no actualiza la fuente de datos subyacente.Pensé que podría tener que ver con LinqDataSource, así que agregué SqlDataSource y sucede lo mismo.El aspx es el siguiente (la página de código subyacente está vacía):
<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é diablos me estoy perdiendo aquí?Este problema me está volviendo loco.
Solución 2
Resulta que teníamos una llamada a DataBind() en Page_Load de la página maestra del archivo aspx que probablemente causaba que el estado de GridView se descartara en cada carga de página.
Como nota: los parámetros de actualización para una consulta LINQ no son necesarios a menos que desee establecer un valor predeterminado no nulo.
Otros consejos
Le faltan las secciones <UpdateParameters> de sus DataSources.
Esta es una toma total en la oscuridad ya que no he usado ASP en absoluto.
Acabo de aprender XAML y WPF, que parecen ser muy similares a lo que publicaste anteriormente y sé que para algunos controles de UI necesitas especificar el modo de enlace bidireccional para obtener actualizaciones en ambas direcciones. .