我有一个长期项目(大约9年的持续使用到目前为止),它在几页使用gridviews。 gridviews仅用于显示简短的摘要细节,每个细节都使用单独的编辑表单(隐藏直到被调用)。从平台3.5升级到4之后,ASP.Net gridview总是进入编辑模式。
我没有使用网格编辑,因为编辑过于复杂。编辑表单将通过单独的“添加”按钮或行的链接按钮(使用ButtonField
)调用并显示。
这种方法已经完美工作了几年,并且包括.net 3.5。然而,最近一次升级项目平台.NET 4后我找到了电网进入在线编辑模式时:点击链接按钮
- 在GridView 编辑,然后
- 编辑表单被取消按钮或保存按钮方法取消
在实际编辑表单被解除之后,gridview才会进入editmode。如果调用方法保存,则会涉及gridview的完全重新绑定,但它仍然会进入editmode!
我已经尝试将网格的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>
有其他人遇到这个问题?