Сетка навигации внутри FormView

У нас есть список элементов, которые мы используем для управления представлением формы. Обычно набор результатов составляет от 5 до 15 записей. Прямо сейчас в представлении формы у нас есть типичный первый/предыдущий/следующий/последний для навигации. Проблема в том, что иногда пользователю необходимо перейти непосредственно к определенной записи, чтобы отредактировать ее. Записи здесь — рабочие задачи, которые имеют довольно короткие описания.

Была предложена идея разместить gridview внутри formview, в котором перечислены все записи для этой формы, и пользователь может просто выбрать просмотр или редактирование этой записи, и он перейдет непосредственно к этой записи и переведет ее в нужный режим. Мы могли бы также поместить это за пределы представления формы, это не имеет большого значения.

Вопрос в том, независимо от направляющей силы, как мне сказать formview перейти к записи X, управляемой чем-то вроде внешней сетки.

Я знаю, что в formview есть поле DataKeyNames, но есть ли способ сказать «Перейти к записи, чей PK равен 17», учитывая, что он находится в текущем наборе данных для formview?

Если да, то есть ли у кого-нибудь образец кода на С#? Я знаю, что мы могли бы просто заполнить существующее представление формы одной записью, но мы также хотим сохранить обычные кнопки навигации на месте, а также в событии (иногда бывают случаи, когда есть сотни рабочих задач, и в этом случае мы d подавить представление сетки - звучит неправильно, но это еще не все бизнес-кейс).


person Gary Smith    schedule 10.01.2013    source источник


Ответы (1)


Это краткое решение состояло в том, чтобы внедрить сетку в FormView ItemTemplate и ссылаться на один и тот же источник данных для обоих.

Чтобы сделать строку доступной для редактирования, вам нужен простой обратный вызов для RowDataBound в сетке, в котором вы получите кнопку ссылки (или любой другой элемент управления, который вы используете для запуска редактирования), а затем установите аргумент команды для rowindex. После этого вам нужно иметь обратный вызов для кнопки ссылки (или триггера), который будет извлекать аргумент команды (опять же индекс строки), а затем установить FormView PageIndex на это значение, а затем установить ChangeMode для FormView на FormViewMode. Редактировать.

Итак, резюмируя, для просмотра только для чтения это сетка со всеми элементами, но при обработке редактирования или вставки вы получаете традиционное представление формы.

person Gary Smith    schedule 22.01.2013