私は、いくつかのページでグリッドビューを使用する長期プロジェクト (これまでに約 9 年間継続して使用) を持っています。グリッドビューは、要約された要約の詳細のみを表示するために使用され、それぞれ個別の編集フォーム (呼び出されるまで非表示) が使用されます。
編集が複雑すぎるため、グリッド内編集は使用していません。編集フォームは、別の [追加] ボタンまたは行の [編集] リンク ボタン ( を使用ButtonField
) によって呼び出され、表示されます。
このアプローチは、.net 3.5 までの数年間、完全に機能しています。ただし、プロジェクト プラットフォームを .net 4 にアップグレードしようとした最近の試みの後、次の場合にグリッドがインライン編集モードになっていることがわかりました。
- gridview Editリンク ボタンをクリックし、
- 編集フォームは、キャンセル ボタンまたは保存ボタン メソッドのいずれかによって閉じられます。
実際の編集フォームが閉じられるまで、グリッドビューは編集モードに入りません。Saveメソッドが呼び出されると、グリッドビューの完全な再バインドが行われますが、それでも編集モードに入ります。
グリッドの EditIndex を -1 に設定しようとしましたが、違いはありません。
コンパイル ターゲットを 3.5 にリセットすると、すべてのグリッドが再び期待どおりに動作します。もともと.net 4プロジェクトとして開始されたプロジェクトでは、この問題はありません。
部分的な UI コード:
<asp:Button ID="cmdAdd" runat="server" Text=" Add " />
<asp:GridView ID="gvWPHA" runat="server" AutoGenerateColumns="false"
DataKeyNames="PORLID" AllowSorting="false"
EmptyDataText="No records yet" EmptyDataRowStyle-CssClass="qansYes">
<HeaderStyle CssClass="gvhead" />
<RowStyle CssClass="TRPrime" />
<AlternatingRowStyle CssClass="TRAlt" />
<SelectedRowStyle CssClass="TRSelect" />
<Columns>
<asp:ButtonField ButtonType="Link" Text="Edit" CommandName="Edit" />
<asp:BoundField DataField="PORLID" HeaderText="Record #" />
<asp:BoundField DataField="DateOfAppt" SortExpression="DateOfAppt" HeaderText="Appt Date" DataFormatString="{0:dd/MM/yyyy}" />
<asp:BoundField DataField="OutcomeDesc" HeaderText="Outcome" />
<asp:ButtonField ButtonType="Link" Text="Delete" CommandName="Delete" />
</Columns>
</asp:GridView>
<asp:UpdatePanel ID="upEdit" runat="server">
<ContentTemplate>
... Editing Form markup and validation, cancel button, save button, etc ...
</ContentTemplate>
</asp:UpdatePanel>
他の誰かがこの問題を経験しましたか?