2012-02-24 28 views
0

我有一个长期项目(大约9年的持续使用到目前为止),它在几页使用gridviews。 gridviews仅用于显示简短的摘要细节,每个细节都使用单独的编辑表单(隐藏直到被调用)。从平台3.5升级到4之后,ASP.Net gridview总是进入编辑模式。

我没有使用网格编辑,因为编辑过于复杂。编辑表单将通过单独的“添加”按钮或行的链接按钮(使用ButtonField)调用并显示。

这种方法已经完美工作了几年,并且包括.net 3.5。然而,最近一次升级项目平台.NET 4后我找到了电网进入在线编辑模式时:点击链接按钮

  1. 在GridView 编辑,然后
  2. 编辑表单被取消按钮或保存按钮方法取消

在实际编辑表单被解除之后,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> 

有其他人遇到这个问题?

回答