2008-10-15 2 views
1

Я пишу простой прототип переднего конца с использованием GridView, который заполняется через функцию, а не напрямую связан с источником данных SqlServer.Как удалить строку из GridView с помощью невидимых данных?

Так что я могу удалить строку/запись из сетки/основной базы данных я в настоящее время

  1. Установка AutoGenerateDeleteButton = True
  2. Отображение уникальных записей идентификаторов в первом столбце
  3. Handling событие RowDeleting
  4. получение идентификатора, получая grid.Rows [e.RowIndex] .Cells [idIndex] .Text
  5. Проходя через этот номер на функцию, которая делает процедуры удаления

Это, кажется, работает нормально, но я бы предпочел не показывать идентификаторы пользователям, они ничего не означают для них.

Я попытался установить для свойства Visible свойства id значение false, но это привело к тому, что шаг 4 выше возвращал пустую строку - и поэтому запись не удалялась.

Итак, как я могу хранить номер идентификатора пробега с каждой строкой?

Или я об этом совершенно не так?

Последующие ответы:

Спасибо за оба ответы, в конечном итоге будет DataKeyNames пути Эрика. Для других людей, которые недавно ASP.NET, как я, шаги, которые я использовал, где

  • Между строк, где я поставил сетки DataSource и называемые DataBind(), я добавил

    grid.DataKeyNames = new string[] {"id"};

  • Тогда в функции для обработки RowDeleting я раздобыл мой ид, используя

    grid.DataKeys[e.RowIndex].Value

ответ

3

У GridView есть свойство DataKeyNames. Когда вы привязываете источник данных к сетке, вы устанавливаете DataKeyNames (обычно с одним именем, вашим PK-полем). Вы не показываете ПК, но можете получить от него код.

+0

Да, DataKeys - это путь. – Kon 2008-10-15 16:19:08

0

Видимый = ложные средства не отображаются на странице. Вы хотите либо сделать это поле шаблона, либо использовать HiddenField для хранения значения или установить стиль элемента управления на «display: none;». Это было бы так, если бы клиентский код нуждался в доступе к значению для вызова Ajax или что-то в этом роде.

В противном случае используйте свойство DataKeyNames, как предлагает @Eric Z Beard.

Смежные вопросы