![]() |
|
Модераторы: gambit |
![]()
|
|
| EASports |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 14.12.2006 Репутация: нет Всего: нет |
Прошу помощи в таком вопросе:
Создаю страницу новостей. Как должно быть: Заходим на страницу, происходит коннект к базе, запрос оттуда 20 последних записей из таблички News и через элемент asp:Repeater (или любой другой того же типа) происходит вывод ссылок с названиями новостей и датами их добавления. По щелчку по ссылке, должна открыться страница News.aspx, в которую должен передаться ID (из базы) ссылки (т.е. параметр), по которой произошёл щелчок. И соответственно по этому параметру уже должно отобразиться содержание нововсти. Вопросы: 1. Как в строке в блоке Repeater отобразить название и дату сразу? (Типа
2. Как сделать механизм передачи параметра в целевую страницу при щелчке по ссылке (на карайняк по кнопке)? Когда делал по кнопке, сразу после щелчка вылетала ошибка: "Недействительный аргумент обратной передачи или обратного вызова. Проверка события включена с помощью <pages enableEventValidation="true"/> в конфигурации или <%@ Page EnableEventValidation="true" %> на странице. В целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова поступают из элемента управления сервера, сформировавшего их изначально. Если данные действительные и ожидавшиеся, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи и обратного вызова для проверки". И если можно, разъясните, что за такая ошибка и чем вызвана? |
|||
|
||||
| Idsa |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Замените кавычки, в которые завернуто значение Text, на одинарные:
Самый простой вариант - ссылка с указанием в качестве Get-параметра идентификатора новости. Я уже не припомню подробностей... но в гугле по этой ошибке много информации. По-моему я в свое время так и не смог побороть эту ошибку и просто отключил валидацию. |
||||||
|
|||||||
| EASports |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 14.12.2006 Репутация: нет Всего: нет |
Такое я уже пробовал. Не работает. "Перед директивами препроцессору могут находиться только символы пробелов".
Не катит. Это придётся тогда забивать в базу ID новости с параметрами в строку адреса. А я хочу, чтобы в базе хранился текст новости или там html-код в одном из полей, название, дата и ID. Ссылку не хочу хранить. На крайняк пусть это будет GET, но как сгенерировать из ID и заранее определённой страницы, будем считать, что это News.aspx? |
||||
|
|||||
| wotker |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 18.7.2006 Где: Ростов-на-Дону Репутация: 1 Всего: 5 |
Ничего не понял. У тебя в базе хранится id новости. Почему ты не хочешь передавать его в качестве параметра?
а ссылку на страницу хранить никто и не предлагает --------------------
ICQ :: 347306684e-mail :: wotker[at]rambler[dot]ru |
||||
|
|||||
| EASports |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 14.12.2006 Репутация: нет Всего: нет |
Я согласен его передать в качестве параметра, объясни мне как провернуть следующее: Из базы грузятся названия и в скобочках даты новостей в количестве 20 штук (последних) и отображаются в виде гиперссылок, указывающих на страницу News.aspx, когда щёлкаешь по ссылке открывается страничка News.aspx, в которую любым методом передайтся идентификатор новости (который тоже запрашивается при запросе названия и даты из базы) и выводится текст новости. Просто объясни как передать из динамически сгенерированной ссылки параметр. Если можно, напиши простенький примерчик, в котором присутствует Repeater, к которому через DataSource присоединён массив параметров (id-шников например) в теле которого HyperLink'и, при щелчке по которым параметр отправляется в целевую страницу. Ну типа
|
||||
|
|||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Это сообщение отредактировал(а) Idsa - 24.9.2008, 05:17 |
|||
|
||||
| wotker |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 18.7.2006 Где: Ростов-на-Дону Репутация: 1 Всего: 5 |
Idsa, только еще разделитель забыл
--------------------
ICQ :: 347306684e-mail :: wotker[at]rambler[dot]ru |
|||
|
||||
| EASports |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 14.12.2006 Репутация: нет Всего: нет |
Сделал таким образом. Откомпилилось нормально, но при щелчке по ссылке переход произошёл на страницу, у которой в строке адреса вылезло следующее: "http://localhost:2357/WebPortal/%22~/News.aspx?"%20+%20<%#%20DataBinder.Eval(Container.DataItem,%20"Id")%20%>"
Конфуз вышел. Может какой-то нюанс я забыл? Как принять-то бы теперь параметр в целевой странице? Да и ещё вопросик, реально ли как-нибудь в коде присвоить какой-нибудь переменной выражение <%#Container.DataItem%>, чтобы использовать это в создании ссылки? |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Финальная версия
|
|||
|
||||
| EASports |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 14.12.2006 Репутация: нет Всего: нет |
То же самое.
Адрес только теперь такой: "http://localhost:2357/WebPortal/%22~/News.aspx?id="%20+%20<%#%20DataBinder.Eval(Container.DataItem,%20"Id")%20%>" Дак чего, никто не знает, реально ли как-нибудь в коде присвоить какой-нибудь переменной выражение <%#Container.DataItem%>? |
|||
|
||||
| PashaPash |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 7 Всего: 49 |
EASports, неужели синтаксис датабиндинга настолько сложен, что на такие мелочи уходит по 3 дня?
Реально никакой переменной выражение <%#Container.DataItem%> присвоить нельзя. Потому что это выражение имеет смысл только в разметке страницы. |
||||
|
|||||
| EASports |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 14.12.2006 Репутация: нет Всего: нет |
Спасибо большое, PashaPash. Именно это мне и было нужно. Выручил. А по поводу:
к сожалению ушло значительно больше 3 дней... Если бы знал синтаксис датабиндинга, сюда бы не обращался. Ещё раз спасибо. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |