| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка под ASP.NET > По клику на записи в таблице (or DataGrid) переход |
| Автор: Medved 11.5.2007, 13:07 |
| Как реализовать такой механизм. На странице отображаются данные из таблицы в БД. Необходимо кликнуть на нужную запись и перейти на новую страницу, в которой будет отображена форма для редактирования этой записи. Или говоря по другому мне необходимо реализовать такой же функционал, как здесь http://oneboarddemo.informicus.ru/Login.aspx Логин: test Пароль: test |
| Автор: tol05 11.5.2007, 13:54 | ||
например так (пример из MSDN)
Думаю, принцип понятен. http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.hyperlinkfield.aspx |
| Автор: Mymik 11.5.2007, 14:08 | ||
| Medved, Либо, если так как там это реализовано (по нажатию "поручение") то это делается с помощью CommandeName и CommandArgument т.е. в GridView ты прописываешь в поле ItemTemplate
причем CommangArgument это строка, так что туда спокойно можно передавать несколько элементов. Но при все этом ты должен будешь перехватывать OnRowCommand у GridView. Если его перехватываешь, то у класса GridViewCommandEventArgs есть свойство CommandArgument которое и возвращает строку CommandArgument. Дальше ты ее парсишь и можешь делать все что хочешь с ней... вот так вот. Немного дольше писать. Но при этом есть возможность фильтровать какие-нибудь данные или действия какие-нибудь сделать до того как послать пользователя на другую страницу. Либо что гораздо лучше (как по мне) Так это поставить PlaceHolder по умолчанию он скрыт. А когда ты перехватываешь это событие, то ты делаешь этот PlaceHolder видимым и туда засовываешь данные что тебе нужно редактировать. Типа пользователь не видит командной строки ну и тебе лучше (ибо все что приходит от пользователя это зло) и пользователю спокойнее -- он не пугается страшных GET запросов. |
| Автор: dazy 11.5.2007, 14:14 | ||||
| Я делал так: В GidView делаешь TemplatedField, в него ложишь LinkButton. Свойство Text - биндишь на поле которое должно отображаться в линке, свойство CommandArgument - биндишь на ID записи. В обработчике:
На страничке EditRecord.aspx, лежит ObjectDataSource, ему в качестве входного параметра даешь EditingID из Session, можно сделать через смарттэг, Configure Data Source, там на предпоследнем экране Define Parametrs, заполняешь: Parametr Source - Session, SessionField - EditingID. Полчается в коде:
Естественно этот ObjectDataSource должен выдавать в страничку одну запись. Ну а дальше дело техники, связываешь что-то _там_View с ObjectDataSource, и при загрузке странички переводишь режим редактирования. |
| Автор: Medved 11.5.2007, 16:03 |
| Спасибо за вашу помощь. |