Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
4 / 4 / 2
Регистрация: 13.03.2010
Сообщений: 141
1

FileUpload. Валидация группы контролов

30.09.2011, 00:38. Показов 1082. Ответов 4
Метки нет (Все метки)

Такой вопрос - У меня есть контрол FileUpload и есть для него валидация на стороне клиента. Но проблема в том, что у меня несколько таких контролов с разными ID, а функция использует конкретное ID конкретного контрола.
Выглядит она так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function ImgUpload_Valid(sender, args) {
            var ImgUpl = document.getElementById('<%=UplImg1.ClientID%>');
            var ImgUplPath = ImgUpl.value;
            if (ImgUplPath == '') {              
                args.IsValid = false;
            }
            else {
                var ImgFileExtension = ImgUplPath.substring(ImgUplPath.lastIndexOf('.') + 1).toLowerCase();
                if (ImgFileExtension == "jpeg" || ImgFileExtension == "jpg" || ImgFileExtension == "gif")
                { args.IsValid = true; }
                else
                { args.IsValid = false; }
            }
        }
и сами контролы:
HTML5
1
2
3
4
5
6
7
8
9
<asp:FileUpload ID="UplImg1" runat="server" />
<asp:CustomValidator ID="CustomValidator2" runat="server" 
        ControlToValidate="UplImg1"
        ValidationGroup="NewPropImgs" 
        ClientValidationFunction="ImgUpload_Valid"/>
<asp:FileUpload ID="UplImg2" runat="server" />
<asp:FileUpload ID="UplImg3" runat="server" />                
                    
 <asp:Button ID="btnUpload" runat="server" Text="Upload" />
Как сделать так, чтобы эта фукнция была универсальной для каждого FileUpload контрола. Ведь глупо множить функцию с одним и тем же содержанием, только ради того, чтобы менять ID.

Заранее спасибо за помощь.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2011, 00:38
Ответы с готовыми решениями:

FileUpload
Люди. Как проверить размер файла на клиенте?

FileUpload по частям
Доброго времени суток.Появился вопрос:суть состоит в том что надо реализовать систему добавления...

DetailsView & FileUpload
Всем привет! Проблема такова: когда я редактирую запись в БД с помощью DetailsView, там кроме...

FileUpload событие выбора файла
Как отловить событие выбора файла в контроле FileUpload? Чтобы при выборе файла (изображения) это...

4
86 / 85 / 11
Регистрация: 12.07.2009
Сообщений: 465
30.09.2011, 00:57 2
Найди в sender id элемента который вызвал функцию.

в коде добавь:

Javascript
1
2
3
4
5
6
7
function ImgUpload_Valid(sender, args) {
            debbuger;
            var ImgUpl = document.getElementById('<%=UplImg1.ClientID%>');
            var ImgUplPath = ImgUpl.value;
            if (ImgUplPath == '') {              
                args.IsValid = false;
                ..........
Если пользуешься эксплорером то сможешь сделать дебаг как в обычном коде.

Если в хроме то, открой страницу и нажми на Ctrl+Shift+j
Это включит дебагер.
Выбери в нем файл который содержит этот скрипт

-------------------------
Запустив функцию дебагер остановиться там где написано debbuger
наведя мышь на sender сможешь пройтись по всем свойствам sender
Там и найдешь ID
далее сможешь использовать его путь.
0
4 / 4 / 2
Регистрация: 13.03.2010
Сообщений: 141
30.09.2011, 18:50  [ТС] 3
Проверила. Sender.ID = "ContentPlaceHolder1_CustomValidator2".
Это мне мало чем помогло, так как для каждого CustomValidator тоже идут уникальные ID.
0
86 / 85 / 11
Регистрация: 12.07.2009
Сообщений: 465
30.09.2011, 22:46 4
Pancheska, бррр... Давно этого не делал.
Но точно делал.

Там вроде у CustomValidator есть свойство ControlToValidate в sender его нет?
Если нет, то я в воскресение на посмотрю как я делал, если найду и не забуду.
0
4 / 4 / 2
Регистрация: 13.03.2010
Сообщений: 141
01.10.2011, 20:14  [ТС] 5
Ок. Помогла себе сама. Моя новая универсальная для всех ID FIleUpload функция теперь выглядит так:
Javascript
1
2
3
4
5
6
7
function ImgUpload_Valid(sender, args) {
  var ImgFileExtension = args.Value.substr(args.Value.lastIndexOf('.') + 1).toLowerCase();
  if (ImgFileExtension == "jpeg" || ImgFileExtension == "jpg" || ImgFileExtension == "gif")
    { args.IsValid = true; } // Valid file type
  else
    { args.IsValid = false; } // Not valid file type            
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2011, 20:14

Помощь в написании контрольных, курсовых и дипломных работ здесь.

FileUpload - загрузка на мыло из формы
Как сделать так, чтобы файл загружался на мыло из самой формы вместе с текстом письма. Текст...

Валидация DataGrid и блокировка контролов
Ребят, подскажите пожалуйста, а как сделать блокировку кнопки(ну или других каких-нибудь...

Можно ли создать обработчик события для группы контролов
Вопрос такой - Есть комбобокс, для отлавливания события на изменении выбора позиции в нем мы...

XAML. Выравнивание контролов в ToolBar и StatusBar. + ширина контролов в процентах
Выравнивание контролов в ToolBar и StatusBar с помощью Grid или без. + ширина контролов в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.