ASP.Net gridview всегда входит в режим редактирования после обновления с платформы 3.5 до 4 - PullRequest
0 голосов
/ 25 февраля 2012

У меня есть долгосрочный проект (до 9 лет непрерывного использования до сих пор), который использует gridviews на нескольких страницах. Виды сетки используются для отображения только сокращенных сводных данных, каждая из которых имеет отдельные формы редактирования (скрытые до вызова).

Я не использую редактирование в сетке, так как редактирование слишком сложно. Форма редактирования вызывается и открывается либо отдельной кнопкой Добавить, либо кнопкой Правка строки (с помощью ButtonField).

Этот подход отлично работал в течение нескольких лет, включая .net 3.5. Однако после недавней попытки обновить платформу проекта до .net 4 я обнаружил, что сетки входят в режим редактирования в строке, когда:

  1. Вид сетки Нажать кнопку ссылки и затем
  2. Форма редактирования закрывается либо с помощью кнопки отмены, либо с помощью кнопки сохранения

Вид сетки не входит в режим редактирования до тех пор, пока форма редактирования не будет закрыта. Если вызывается метод Save , то выполняется полная повторная привязка вида сетки, но он все еще входит в режим редактирования!

Я попытался установить EditIndex сетки на -1, но это не имеет никакого значения.

Если я переустановлю цель компиляции на 3,5, все сетки снова будут работать, как и ожидалось. У меня нет этой проблемы с проектами, изначально запущенными как проекты .net 4.

Частичный код пользовательского интерфейса:

<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>

Кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

1 голос
/ 25 февраля 2012

Произошло изменение в поведении GridView в .NET 4.0. Отчет об ошибке Microsoft Connect находится здесь: https://connect.microsoft.com/VisualStudio/feedback/details/554166/gridview-sets-editindex-property-when-in-previous-net-versions-it-didnt

...