![]() |
|
Модераторы: gambit |
![]()
|
|
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Можно ли реализовать след задачу? Есть рисунок . На нем какие-то выноски к деталям (назовем так). Как выделить выноску на рисунке? И прочитать что выделено? Можно ли это сделать с помощью ImageMap?
|
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
kedicik, преобразование рисунка в текст. Это очень сложные и трудоемкие процессы. Алгоритмы дорого стоят. А реализация ихняя еще дороже. Стандартных функция распознавания текста из рисунка нет. Если где-нибудь найдешь бесплатную библию для распознавания текста -- поделись, мы все будем очень и очень благодарны столь щедрому подарку.
-------------------- |
|||
|
||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Я имела ввиду не распознавание текста. А если сделать на рисунке хот споты и выделять их. Мне без разницы текст или нет. Какие-то части на рисунке. Я это имела ввиду. Вот прочитала про ImageMap/ Там есть хот споты. Просто если это и возможно то если имедж идет их бд? Тогда на нем надо уже заранее проставить хот споты. Или вообще это не реализуется?
|
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
kedicik, Нет, ты ж всегда можешь определять RectangleHotSpot для своего ImageMap.
Сам по себе ImageMap должен иметь ссылку на картинку. Вот ты и забираешь картинку из СУБД. Ну и соответственно после этого ты можешь (если ты используешь GridView/DataGrid, Repeater или DataList) прикрепится к *DataBound и там подсовывать к этому ImageMap разные HotSpot
Конечно, было б классно хранить в отдельной таблице в базе тип HotSpot'а, ссылку куда он ведет, его разметку и ToolTip. типа по ID картинки забираешь из таблицы все данные для HotSpot'а и генерируешь их на ходу. Добавлено через 1 минуту и 7 секунд Да. Ну а если не используешь что-то типа GridView/DataGrid, Repeater или DataList Тогда ты можешь подсовывать прямо в Page_Load -------------------- |
|||
|
||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Все получилось Да я согласна! Хранить в бд координаты. Жалко что не выделяется хот спот при щелчке. Хорошо бы наложить на него как бы слой при щелчке. А при повторном удалить его. Типа прорисовать прямоугольник. Как нить можно?
|
|||
|
||||
| Mymik |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Если очень захотеть. То можно
JS Функция отвечающая за рисование прямоугольника. (Другие фигуры было очень лень рисовать)
А в behind-code добавляем вот так вот
-------------------- |
||||||
|
|||||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Спасибо попробую завтра на работе.
|
|||
|
||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
На открытие страницы сделала 2 хотспота. При клике по ним выводятся прямоугольники. При повторном они исчезают. Все правильно. Теперь мне нужно куда-нить сохранить какие споты у меня выделены. Мне нужно загнать в серверную лебел. Но я из джавы не вижу лебел. Может я не умею ее найти. Я могу найти только html inputtext/ туда я засылаю. Но я должна сделать его невидимым. Но после этого он у меня не может найтись в документе в джаве.
Добавлено через 3 минуты и 39 секунд я вообще джаву плохо знаю. Вообще в джаве можно обращаться к серверным контролам? напр лебелам? И интересна 1 вещь. На этом Image Map у меня еще 2 спота которые я создала обычным способом. После клика и высвечивания прямоуг клик по Image map не идет. Т есть по другим спотам ничего не работает Добавлено через 6 минут и 42 секунды или это влияет слой который наложился на мап? Добавлено через 9 минут и 17 секунд ну а вообще меня давно интересует союз джавы и visualbasic.net почему из джавы никак нельзя обновить какое-нибудь поле текстовое типа asp:Label |
|||
|
||||
| Mymik |
|
||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
kedicik, все можно спокойно найти. Просто открой код сгенерированной страницы и ты увидишь что там ID разные. И потом. В input записываются данные с помощью value. А в Label через innerHTML это разные объекты, у них разные свойства ;о). Чтобы найти объект, надо использовать document.getElementById('<ID контрола>'). Но эта <ID контрола> отличается от серверной (практически всегда) и потом в выходном потоке надо вписывать .ClientID серверного контрола. Вот описание Label
А вот так ты сможешь найти этот объект на клиенте
<%=lblTest.ClientID %> вписывает в выводном потоке клиентский ID твоего серверного контрола.
Ну-у-у... теоретически сервер и клиент разделены и недоступны. Только лишь с помощью элементов которые отправляют данные на сервер, они могут взаимодействовать. (ну это если ты не будешь писать сама писать пакеты запросов к серверу)
А как ты делаешь его невидимым ??? случайно не через Visible="false" ??? вообще-то это свойство убирает этот элемент из выходного потока... ну он генерируется, но в выходной поток данных он не поподает. Используй HiddenField или делай для своего TextBox display:none в стилях. Но первое лучше ;о). А что такое обычный способ ???
Все можно. Я описал выше. Но на сервере ты этих изменений не увидишь. Потому что Label не отправляет данные на сервер. Это просто статический текст обрамленный <span></span> и все. Постят данные на сервер только те контролы, которые обязаны это делать. -------------------- |
||||||||||||
|
|||||||||||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
А что такое обычный способ ???
Ну я имею ввиду что я создала 2 спота в конструкторе а не программно как вы мне написали. То есть есть2 спота с джавой и 2 спота обычных. Все 4 спота есть после загрузки страницы. Если я не кликаю по тем спотам где выводятся прямоугольники то по клику по мапу у меня нормально работают другие споты. Я получаю то что мне надо - иформацию по какому я кликнула (например координаты). Но как только я кликнула по джавским спотам и у меня появился прямоугольник, тогда те споты я не вижу и по клику у меня выводится - страница выводится с ошибкой-. ну это ладно . Поскольку нужны прямоугольники. И еще: а как отменить прямоугольник но чтобы тоже отловить это. Например по отрисовке прямоугольника я вывожу window.alert() а когда он становится невидимым то ?????? надо наверное новую джаву писать на это. 2 варианта - видимы и невидимый. Но я в джаве профан. Спасибо за инфу про обновление серверных полей. А я так долго мучилась с этим! Добавлено через 8 минут и 8 секунд Спасибо и жду ответов. Добавлено через 13 минут и 13 секунд Да на Input.text visible=false/ было. А брала из поля Value/ Но если даже засовывать инфу в asp:label то не произойдет отправка на сервер. Это понятно. А если в другой серверный элемент? Я тоже думаю что нет. И возбудить событие нельзя из джавы? я думаю что нет. |
|||
|
||||
| Mymik |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Покажи как ты определила те два спота. Потому как у меня все работает. Прямоугольник не становится невидимым -- он удаляется из контента страницы. удаление прямоугольника стоит на событие onclick.
Вот этот код отвечает за удаление элемента со страницы. Вставь перед ним что тебе нужно, или вынеси в отдельную функцию.
красные квадраты не становятся видимыми или невидимыми. Они либо есть, либо нет. Ты можешь попросту отловить событие до создания рисунка. В функции drawRect можешь поставить свои условия и ответвления работы скрипта. Вот тут вот ход твоих мыслей я слабо очень понимаю... что ты хочешь ??? Создать какие-то данные с помощью JS и отправить с PostBack на сервер ??? ну так засунь эти данные в HiddenFiled, на клиенте это (<input type="hidden" />) это тот же <input type="text" /> только невидимый и он делает PostBack на сервер. Т.е. на сервере ты можешь обратится к контенту этого поля и взять из него данные, что были вписаны туда по средствами JS. Почему ж нельзя, конечно можно, с помощью Page.ClientScript.GetCallbackEventReference()(в asp.net 1.1 Page.GetPostBackClientEvent()) Причем вплоть до того, что можно не использовать asp.net AJAX RC1 а через эти методы использовать ajax (сам недавно узнал об этом). -------------------- |
||||
|
|||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Я поставила на них тип не NavigateUrl а забыла .......... на работе это.... postback ? и определила Target=_self. Когда кликаю по ним (но уже прямоугольник появился на других спотах) то внизу вижу ошиибку как раз что-то про Тarget. Ну тогда до понедельника если точно нужно |
|||
|
||||
| kedicik |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Вот посылаю Form1.aspx и Form1.aspx.vb/ Framework 2.0
Добавлено @ 18:04 Извините не знаю как правильно присоединить
Добавлено @ 18:10
Добавлено @ 18:12
Это сообщение отредактировал(а) Mymik - 21.5.2007, 20:53 Присоединённый файл ( Кол-во скачиваний: 2 )
code.txt 2,02 Kb |
||||||
|
|||||||
| kedicik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 12.4.2007 Репутация: нет Всего: нет |
Все таки обновление Label не работает. После отрисовки прм-ка меняется только Hidden и InputText/ а label не меняется.
После отрисовки прям-ка по клику на Hot1 Hot2 выдается ошибка Ошибка на странице jscript: "theForm._EVENTTARGET" есть NULL и не явл объектом |
|||
|
||||
| Mymik |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
kedicik, твой behind-code я вообще не смотрел. Я только смотрел только то что видим в aspx файле.
1) получение ссылок на DOM объект через document.all не поддерживается браузерами кроме IE(а нам ведь нужен код, который будет работать везде). Потому ее лучше заменять на document.getElementById. 2) В 10 и 11 строчках твоего xml файла (последняя вставка в виде xml) у элементов input есть атрибут runat="server" что делает их объектами HtmlControls. А следовательно их id (как и name) на клиенте отличаются от серверного. Потому общаться к ним надо
<%=Text1.ClientID %> -- преобразуют серверный ID в клиентский. 3) asp:Label на клиенте преобразуется в конструкцию <span></span> и чтобы записать текст в эту конструкцию, тебе нужно использовать прототип innerHTML. Этот прототип возвращает и устанавливает значение контента у данного DOM объекта. потому и изменять текст мы будем через
4)После того как ты нажимала на JS кнопки, которые рисовали квадратики, я как бы переписывал весь html... и из-за этого IE почему-то не хотело делать PostBack. Потому я пошел по другому пути и переписал это полностью на DOM модели. Ну и вобщем код страницы теперь выглядит вот так вот -->>
VB.NET я не сильно люблю, потому туда даже и не смотрел. Что касается работоспособности страницы -- теперь она работает во всех браузерах. Это сообщение отредактировал(а) Mymik - 21.5.2007, 21:36 -------------------- |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |