![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
MSr00t |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 26.6.2007 Репутация: нет Всего: нет |
Есть кастом контрол, в котором объявляется метод, который задает URL картинки для таблицы:
Как сделать так, чтобы при установке свойства появлялась кнопочка, при нажатии на которую выскакивал файловый диалог, как при нажатии, скажем, на BackImageUrl? Очень надо! Заранее спасибо! |
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 1 Всего: 17 |
для этих целей существует стандартный контрол ASPX - FileUpload
или HTML вариант - <input type="file"/> тебе навернео ASPX вариант проще использовать будет |
|||
|
||||
MSr00t |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 26.6.2007 Репутация: нет Всего: нет |
Я новичек в ASP.NET. Может я чего и недопонял, но мне нужно не совсем это. Я создал custom control у которого есть куча изменяемых параметров. Среди них есть параметр "file name" - это путь к XML-файлу с данными. Мне необходимо, чтобы пользователь не вручную вводил URL файла, а имел возможность выбрать его в открывшемся диалоге. К примеру в стандартном контроле "image" есть свойство "imageUrl".
|
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 1 Всего: 17 |
нутк размещаешь на форме, там где ты будешь заставлять юзера выбирать этот XML, FileUpload компонент... после выбора какого либо файла путь к нему содержится в свойстве FileName этого контрола...
|
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
Wanderer2019, проблема в том, что security всех известных и используемых браузеров запрещает принимать и устанавливать путь к файлам с помощью JS или приходить с сервера.
Потому для TopicStart'ера есть единственный выход: два элемента
Первый контрол использовать для загрузки пользовательских файлов, а второй использовать для загрузки данных с его же сервера. Вообще луче всего предусмотреть еще какой-нибудь radiobutton для того чтобы переключаться между этими вариантами. -------------------- |
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 1 Всего: 17 |
нука не понял.. расскажи ка по подробней??? может я чего то не понимаю, но у меня есть проект и там для подгрузки файлов с клиента используется именно FileUpload.... все вроде бы нормально работает... в чем там проблема то? |
|||
|
||||
Mymik |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
у меня есть
Могу ли я ему как-то назначить значение по умолчанию ??? ну типа чтобы там сразу было написано C:\temp.txt ??? На сколько мне известно этого сделать нельзя по установленным правилам безопастности браузеров, дабы умные люди не крали файлы с пользовательского компьютера. (т.е. прописать для этого инпута display:none и записать туда адрес файла что тебе нужен.) Ну и та же ситуация и для
А теперь подойдем с клиентской стороны, т.е. там мы можем использовать JS. Допустим фунцию
Данная функция не вызовет никаких изменений в нашем компоненте. Т.е. мы можем получать значение нашего компонента, но не можем его устанавливать.
функция написанная выше приведет к тому, что в MessageBox мы увидим текст который храниться в FileUpload(input type="file") поле.[add]Т.е. это прототип является readonly[/add] Вывод: из вышесказанного делаем вывод, что установка значения для input обходя пользовательские "кривые" руки невозможно. P.S. для настоящих извращенцев рекомендую ознакомиться с CSS position:absolute;. С помощью этого свойства можно немного усовершенствовать стандартный FileUpload путем установки дополнительного TextBox поверх FileUpload и установки перехвата onchange для FileUpload который будет вписывать значение хранимое в FileUpload в TextBox. Однако для того чтобы отчистить значение этого file тебе нужно использовать кнопку
А как известно всем и вся, эта кнопка уничтожает[add]сбразывает в default значение[/add] все введенные данные в пределах form где она определена. Это сообщение отредактировал(а) Mymik - 14.7.2007, 11:04 -------------------- |
||||||||||
|
|||||||||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 1 Всего: 17 |
а зачем это вообще нужно делать??? этот контрол предоставляет необходимый автору поста диалог и ничего более... для чего туда вносить значение по умолчанию? |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
А тут вы говорите, что после выбора данных из xml, путь содержится в FileName, вообще это не так, потому как в fileUpload.FileName содержит только лишь имя файла, но не содержит логический путь к вайлу на пользовательском компьютере. Но это не столь важно, на много более важный вопрос как вы хотите засунуть данные из xml в FileUpload... -------------------- |
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 1 Всего: 17 |
все же мне кажется, что афтар просто спросил как ему организовать диалог выбора файла с клиента, чтобы не вводить путь к файлу руками...
нуда ладно... думаю на поставленный вопрос он получил таки ответ =) |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Хм... Я не вижу смысла в таком подходе. Конечно, мы сможем 1. при загрузке отображать путь по умолчанию 2. при выборе нового пути отобразить и его. Однако, насколько я понимаю, проблема остается нерешенной, ведь путь по умолчанию мы никаким образом не сможем записать в FileUpload, а, следовательно, если пользователь не выберет файл (т. е. оставит файл по умолчанию), вопреки ожиданиям, ничего не будет загружено. |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
в ходе дискуссии с Wanderer2019 мы пришли к обоюдному мнению, что топикстартеру не нужно значение по умолчанию так же как и все остальное. Вообще не плохо было б чтобы и топикстартер принимал участие, а то я так и не понял что ему нужно.
FileUpload никто и не видет и не должен видеть. Да и не форум хакеров тут чтобы рассказывать как воровать файлы с компьютера пользователей. Данный способ просто позволит в одной форме выбирать данные из интернета и данные с пользовательского компьютера. С одной стороны когда он выбирает с помощью FileUpload (мы должны оставить такую функциональность) то мы выбранный файл (а точнее адрес к нему) копируем в TextBox с помощью JS. Если же он хочет вводить данные руками, то пускай это делает руками адрес в интернете. Согласен что это довольно стремный способ по той причине, что пользователь может захотеть ввести адрес руками в FileUpload,- в этом случаи как обмануть систему пока что варианта у меня нет. Можно поискать в инете если это нужно будет. Но пока топикстартер молчит мне это не хочется делать. -------------------- |
|||
|
||||
MSr00t |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 26.6.2007 Репутация: нет Всего: нет |
Всем спасибо за участие, я нашел правильное решение. Мне всего лишь было необходимо, чтобы в закладке "properties" моего контрола в свойстве "FileName" была возможность выбирать URL необходимого файла в диалоге. Вот код:
Тему можно считать закрытой. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [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. |