Търся начин да променя реда на asp.net gridview в режим EDIT въз основа на първичния ключ на данните, а не въз основа на номера на реда, щракнат върху gridview.
Какви са вариантите.
Търся начин да променя реда на asp.net gridview в режим EDIT въз основа на първичния ключ на данните, а не въз основа на номера на реда, щракнат върху gridview.
Какви са вариантите.
Вероятно ще имам скрита колона в GridView, която съдържа PK. Когато се щракне върху бутона за редактиране, можете да използвате подходящия манипулатор, за да получите PK от този ред и да го манипулирате, както сметнете за добре.
Актуализация: След като прочетох коментара ви, не че не можете да получите PK, а че данните са били опреснени между щракването върху бутона и когато изгледът на мрежата се изобразява отново като редактируем. Във вашия сценарий потребителят може да щракне върху третия ред, за да редактира, и изведнъж той става седмият ред, защото други потребители са вмъкнали четири реда.
Простият отговор е не правете това! От една страна, това ще направи живота ви много по-труден и 2) ще бъде объркващо за потребителя, ако щракне върху третия ред за редактиране и изведнъж това е седмият ред на екрана му.
Ако по някаква причина ТРЯБВА да опресните данните, направете го, след като потребителят извърши промените си. Ако трябва да опресните данните, за да сте сигурни, че някой друг потребител не е редактирал стойностите, преди потребителят да ги актуализира, добре, ще трябва да намерите друго решение. може би родителски/детайлен екран ще работи или ще добави изскачащ прозорец, който казва, че данните са променени. (Не забравяйте, че ако стойностите внезапно се променят без предупреждение, потребителят също ще бъде объркан.)
DataBind()
в метода GridView1_RowEditing, така че да не опреснява данните. Второ, EditIndex винаги ще ви даде реда за реда, така че ще трябва да използвате това число, за да получите първичния ключ, който ще трябва да имате в скрита колона в GridView.
- person Dave Mroz; 16.01.2014