powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Контролы на клиенте на основе класса
4 сообщений из 4, страница 1 из 1
Контролы на клиенте на основе класса
    #38157582
Boneshock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер
Видел мельком в mvc такую вещь: у класса модели указываешь определенные атрибуты(Required,DisplayName и т.д.) и на основе них генерируются соответствующие контролы.
Нужно подобное на формах. Т.е. что я хочу: указываю некие мета данные(атрибуты) у класса, теперь мне нужно на клиенте построить контролы для каждого из полей, поскольку контролы подгружаются динанически нужно расширить стандартный JavaScriptSerializer, чтобы он учитывал в json-ответе атрибуты класса. На клиенте делаю функцию которая читает подставленные атрибуты и записывает их в "data-" свойства контрола(data-required, data-maxlength и т.д.).
Идея правильная?
Если да то:
1)атрибуты для класса можно исопльзовать стандартные или нужно будет свои писать?
2)как правильно научить JavaScriptSerializer понимать атрибуты?
...
Рейтинг: 0 / 0
Контролы на клиенте на основе класса
    #38157591
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, сделать не атрибуты а readonly поля?
и тогда достаточно будет через jquery templates заполнить Ваши data-required, data-maxlength и т.д.
...
Рейтинг: 0 / 0
Контролы на клиенте на основе класса
    #38157616
Boneshock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,
ближе к коду, к примеру у меня есть класс
Код: c#
1.
2.
3.
4.
5.
6.
7.
public class Template
{
        public string Name { get; set; }
        public int Number { get; set; }
        public DateTimeOffset Date { get; set; }
        public decimal Price { get; set; }
}


после обработки JavaScriptSerializer я получу что-то вроде этого
Код: javascript
1.
{"Name":null,"Number":0,"Date":"\/Date(-62135596800000)\/","Price":0}


Конечно я могу построить контролы и на основе этой информации, но как быть с валидацией и другими плюшками?
к примеру я хочу чтобы какое то поле было обязательно к заполнению, а какому то полю указать макс. значение, а для другого указать текст-подсказку.
Было бы круто сделать так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class Template
{
    [MyValidation(Tooltip="какой то текст подсказка")]
    public string Name { get; set; }
    [MyValidation(MaxValue=1000)]
    public int Number { get; set; }
    public DateTimeOffset Date { get; set; }
    [MyValidation(Required=true)]
    public decimal Price { get; set; }
}


и чтобы после обработки такого класса улучшенным сериализатором я бы получил на выходе нечто такое:
Код: javascript
1.
[{Field:"Name", Value:null, Properties:[Tooltip:"какой то текст подсказка"]},{Field:"Number", Value:0, Properties:[MaxValue:1000]},{Field:"Date", Value:"\/Date(-62135596800000)\/", Properties:[]},{{Field:"Price", Value:0, Properties:[Required:true]}]



Или я неправ?
...
Рейтинг: 0 / 0
Контролы на клиенте на основе класса
    #38157635
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boneshockкак быть с валидацией"в формах" для этого есть валидаторы
но как их сделать на клиенте динамически - я не знаю, никогда не было нужно почему-то
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Контролы на клиенте на основе класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]