Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прошу помощи для студента.Вопрос о Repeater. Вопрос о Repeater. 
:(
    Опции темы
shark1
Дата 2.3.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Вот пытаюсь сделать выборку с помощю Repeater.Пишу так :
Код

<asp:Repeater ID="Repeater1" runat="server" 
DataSourceID="SqlDataSource1" >
    <HeaderTemplate><asp:Label runat="server" ID="Header1" 
        BackColor="DarkOrange" ForeColor="ActiveCaptionText"
        Font-Bold="true" Font-Underline="true" Font-Size="Large">
        We present our valued Employees!</asp:Label>
        <table>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
         <td>
           <asp:Panel ID="Panel1" runat="server" 
            BackColor="LightPink">
           <asp:Image ID="Photo" runat="server" ImageUrl=<%# Eval("PhotoPath")%>/>
               <%# Eval( "TitleOfCourtesy") %>
               <%# DataBinder.Eval(Container.DataItem,"FirstName") %>
               <%# DataBinder.Eval(Container.DataItem,"LastName") %>
               was born in <%# Eval("BirthDate","{0:dd.MM.yyyy}") %>.<p>
               <%# Eval("TitleOfCourtesy").ToString() == "Mr." 
|| Eval("TitleOfCourtesy").ToString() == "Dr." ? "He" : "She"%>
               lives in beautiful city 
               <%# ((System.Data.DataRowView)Container.DataItem)["City"]%>,
               <%# Eval( "Region") %> in
               <%# DataBinder.Eval(Container.DataItem,"Country") %>.</p>
               <p>We appreciate <%# Eval("TitleOfCourtesy").ToString() == "Mr." || 
                  Eval("TitleOfCourtesy").ToString() == "Dr." ? "his" : "her"%> 
                  work as <%# Eval("Title") %>.</p>
               <p><%# DataBinder.Eval(Container.DataItem,"Notes") %></p>
            </asp:Panel>
         </td>
       </tr>
    </ItemTemplate>
    <FooterTemplate>
    </table></FooterTemplate>
</asp:Repeater> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        SelectCommand="SELECT * FROM [Employees]" 
></asp:SqlDataSource>


но почемуто фото не отображаются,хотя во время что я определяю SqlDataSource я фото вижу.Зарание спасибо. 
PM MAIL   Вверх
Mymik
Дата 2.3.2008, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



я подозреваю, что фото не отображается по той причине, что ImageUrl не правильный. Т.е. туда подставляется какой-то путь, но он наверняка относительный, а значит он вычисляется относительно url в адресной строке браузера.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
anonym
Дата 2.3.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 27.11.2006

Репутация: нет
Всего: 3



Или другой вариант - фото лежат в какой-нибудь защищённой папке типа App_Data или App_Code.
PM MAIL   Вверх
shark1
Дата 2.3.2008, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Mymik вы правы,фото не наместе,но вот что странно,когда я создавал SqlDataSource,я же их видел ?Странно.А тогда можно небольшой римерчик ,как отобразить картинки на странице.Зарание спасибо.
PM MAIL   Вверх
Mymik
Дата 3.3.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Цитата(shark1 @  2.3.2008,  23:25 Найти цитируемый пост)
когда я создавал SqlDataSource,я же их видел ?
А причем тут SqlDataSource к картинкам ??? он выбирает данные из базы и отдает их кому-либо. Я что-то не понимаю ход твоих мыслей.

Цитата(shark1 @  2.3.2008,  23:25 Найти цитируемый пост)
А тогда можно небольшой римерчик ,как отобразить картинки на странице
Обычно делают двумя способами. Первый способ очень простой
Код

<img src="images/bla-bla.jpg" width="80px" height="10px" alt="" title="" />

Но он очень не подходит для Friendly Url, да и потом, при использовании masterpages часто бывает, что страницы находятся в разных подкаталогах. Вобщем очень неудобный вариант.
Потому в asp.net есть такой контрол, как Image, и все пути который начинаются с "~/" asp.net преобразует и дает правильный путь начинающийся от корневого каталога WebSite'а. Т.е. к примеру у тебя все та же bla-bla.jpg хранится в images, ты пишешь такую вот ахинею -->>
Код

<asp:Image ImageUrl="~/images/bla-bla.jpg" ToolTip="" Width="80" Height="10" runat="server"/>

И теперь ты можешь видеть эту картинку в любом подкаталоге.




--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
shark1
Дата 3.3.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Mymik спасибо большое это я усвоил.А вот как теперь сделать чтоб для каждого FirstName,LastName чтоб получали каждый свою фотографию.Большое спасибо.
PM MAIL   Вверх
Mymik
Дата 3.3.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



дык ты ж используешь Repeater, ты забираешь данные из субд, возможно там у всех твоих записей одинаковые картинки. Измени данные в СУБД и ты увидишь как картинки изменятся.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
shark1
Дата 4.3.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Mumik спасибо за помощь,но в том то и дело что в базе разние картинки :(.А немогли бы вы для меня непутевого набросать маленький примерчик.Просто очень хочетса научитса как из базы доставать картинки и чтоб они становились в нужные места.Зарание спасибо.
PM MAIL   Вверх
Mymik
Дата 4.3.2008, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Цитата(shark1 @  4.3.2008,  20:48 Найти цитируемый пост)
Mumik спасибо за помощь,но в том то и дело что в базе разние картинки :(.А немогли бы вы для меня непутевого набросать маленький примерчик.Просто очень хочетса научитса как из базы доставать картинки и чтоб они становились в нужные места.Зарание спасибо. 

ну во-первых я Mymik. 
Во-вторых нет. Давай сам пиши. Показывай приходящие данные. Или приведи пример базы данных покажи что возвращает. Что ж тут не работает.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
shark1
Дата 5.3.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Mymik извени.База(Access) выглядит так :
ID-Autonumber
FirstName-text
FirstName-text
Photo-OLE Object
Link -text(папка на компе где хранятся photo)
возвращает все данние,только вместо картинок показивает ярлычки.
Делаю так:
Код

<asp:Panel ID="Panel2" runat="server" 
            BackColor="Cyan">
           <asp:Image ID="Photo" runat="server" ImageUrl=<%# Eval("Photo")%/>               
               <%# DataBinder.Eval(Container.DataItem,"FirstName") %>
               <%# DataBinder.Eval(Container.DataItem,"LastName") %>             
            </asp:Panel>

если меняю :
Код

<asp:Image ID="Photo" runat="server" ImageUrl=<%# Eval("Photo")%/>

на 
Код

<asp:Image ID="Image1" ImageUrl="~/images/1.jpg" ToolTip="" Width="80" Height="40" runat="server"/>

то тогда вижу(понятное дело,после того как ты мне подсказал)у всех одну и туже фотографию.
Подскажи в чем я ошибаюсь.Зарание спасибо.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  untitled.jpg 64,52 Kb
PM MAIL   Вверх
Mymik
Дата 5.3.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



shark1, ну так ты ж везде подставляешь одинаковый ImageUrl, а тебе нужно подставлять его.
при это, у тебя поле Photo является OLE (т.е. там внутри храняться уже файлы). Следовательно, для того чтобы отобразить это поле, тебе нужно создать отдельный файл. Желательно ashx (Web Handler). В который ты будешь передавать ID записи и по этому ID будешь вытаскивать Photo из базы и писать эти данные в Response.
Вот тут можно посмотреть, но там они реализовывают через ViewImage.aspx файл, что тебе не нужно, это не правильно по той причине, что в aspx очень длинный цикл жизни, а у ashx вызывается только один метод и все (т.е. прирост в скорости).

Добавлено через 5 минут и 51 секунду
мдя... но если у тебя есть поле Link где хранятся фото... хм, тогда действуем по другому smile
Тогда представим что в Link хранится что-то типа "1.jpg" И ты знаешь, что все эти файлы хранятся в "~/images/users/"
Из этого следует, что наш Image в Repeater'е должен выглядить вот так вот -->>
Код

<asp:Image ImageUrl='<%# String.Concat("~/images/user/", Eval("Link")) %>' ToolTip='<%# String.Concat("Photo of ", Eval("FirstName"), " ", Eval("LastName")) %>'  runat="server"/>

Вот и все. Вот так вот все должно работать smile

Это сообщение отредактировал(а) Mymik - 5.3.2008, 10:34


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
shark1
Дата 5.3.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Да чтож я такой непутевый,и так у меня не работает,пишет ошибку что адресс фото не коректный,сделал другую DB,оставил только имя,фамилия и линк(это где в папке хранятся картинки),и все равно не показивает :( :(.
PM MAIL   Вверх
MaxWave
Дата 5.3.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



shark1
Код

<%# Eval("photoPath") %> 

Эммм, у тебя случаем не подсвечивается строчка красным??? Чтобы забиндить свойство контрола нужно выражение обернуть в кавычки!

Вот так: 
Код

ImageUrl="<%# Eval(...) %>"


Но тогда в скобки нельзя будет записать слово в кавычках. И Eval заюзать не выйдет...

Сделай функцию getImage внутри класса страницы и возвращай путь.. Типа так
Код

ImageUrl="<%# getImage() %>"

PM MAIL   Вверх
shark1
Дата 5.3.2008, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



одну секундочку,почему если я делаю так в обычной таблице:ImageUrl="C:\Documents\images\1.jpg"
то я все равно не вижу картинку,может что то в настройках :(.Спасибо.
PM MAIL   Вверх
MaxWave
Дата 5.3.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 8.3.2006

Репутация: нет
Всего: нет



Да, странно.  smile  Тогда придется переместить все картинки в папку с сайтом. Теперь уж точно загрузятся.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0879 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.