GridView не будет обновлять базовый источник данных
-
09-06-2019 - |
Вопрос
Так что я весь день ломаю голову над этой проблемой.У меня есть LinqDataSource, который указывает на мою модель, и GridView, который ее использует.Когда я пытаюсь выполнить обновление в GridView, оно не обновляет базовый источник данных.Я подумал, что это может быть связано с LinqDataSource, поэтому я добавил SqlDataSource, и произошло то же самое.aspx выглядит следующим образом (страница с кодом пуста):
<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>
Чего, черт возьми, мне здесь не хватает?Эта проблема сводит меня с ума.
Решение 2
Оказывается, у нас был вызов DataBind() в Page_Load главной страницы aspx-файла, который, вероятно, приводил к удалению состояния GridView при каждой загрузке страницы.
В качестве примечания - параметры обновления для запроса LINQ не требуются, если только вы не хотите установить для них какое-то ненулевое значение по умолчанию.
Другие советы
Вам не хватает разделов <UpdateParameters> в ваших источниках данных.
Это полный снимок в темноте, так как я вообще не использовал ASP.
Я только что изучал XAML и WPF, которые, похоже, очень похожи на то, что вы опубликовали выше, и я знаю, что для некоторых элементов управления пользовательского интерфейса вам нужно указать режим привязки к двухстороннему, чтобы получать обновления в обоих направлениях.