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
aspx ファイルのマスター ページの Page_Load で DataBind() 呼び出しがあったことが判明しました。これがおそらくページを読み込むたびに GridView の状態を破棄させていました。
注: LINQ クエリの更新パラメーターは、null 以外の既定値を設定する場合を除き、必要ありません。
他のヒント
DataSource の <UpdateParameters> セクションがありません。
ASP をまったく使用したことがないため、これは全くの暗中模索です。
私はちょうど XAML と WPF を学んでいるところです。これはあなたが上に投稿したものと非常によく似ているようです。また、一部の UI コントロールでは、双方向で更新を取得するにはバインド モードを双方向に指定する必要があることを知っています。 。
所属していません StackOverflow