Как создать пользовательский редактор свойств в asp.net (веб-формы)

#asp.net #user-controls #webforms

#asp.net #пользовательские элементы управления #веб-формы

Вопрос:

Допустим, у нас есть эта структура в БД, почти без свойств. Все свойства, их имя, значение по умолчанию, описание и тип (строка, целое число, дата-время) определены в одной таблице (AttributeDefinition), а все значения хранятся в другой таблице.

 Cars (Id, Name)

AttributeDefinition(AttributeDefinitionId, Type, Name, Desctiption, MaxValue, ...)

AttributesValues (AttributeDefinitionId, CarId, Value)
  

Теперь я хочу создать универсальный редактор для свойств Cars.

Вопрос в том, как я должен это реализовать? Существуют ли какие-либо встроенные элементы управления, которые могут справиться с этим, делали ли что-то подобное другие?

Или я должен просто пойти так:

 // In MyPropertyEditor.ascx load
// Iterate over all attributes in attributedefinition
//    add TextBox, NumberEditor or DateTimePicker, 
//    give them som good names
// End
//
// In Save, iterate over all controls again, and save back
  

Я двигаюсь в правильном направлении?

Я думал о datagrid и о том, как он создает все столбцы на лету. Я надеялся, что смогу сделать что-то подобное?

Спасибо за любую помощь

С уважением

Larsi

Комментарии:

1. Я не думаю, что существует элемент управления, который сделает это за вас автоматически, лучше всего использовать хранимую процедуру с динамическим sql (не забудьте использовать sp_excecutesql с параметрами, чтобы предотвратить внедрение sql) или вам придется создать свой собственный datatable в коде, не похоже, что это займет больше 10 минут или около того?

Ответ №1:

Вы говорите о поддержке внутри Visual Studio? Если вы:

Вот некоторые из вариантов решения этой проблемы: http://msdn.microsoft.com/en-us/magazine/cc164048.aspx В самом простом виде настройка TypeConverter позволила бы выполнить задание, но если вам нужна пользовательская форма пользовательского интерфейса, вам нужно рассмотреть создание пользовательского редактора.

Если нет, но обсуждая пользовательский интерфейс для создания веб-сайта, вы могли бы рассмотреть динамические данные, поскольку именно для этого они и предназначены — быстрый и простой способ создания пользовательского интерфейса для ваших данных и их взаимосвязей. Могут быть некоторые компоненты, которые вы можете использовать даже в проекте веб-форм…

HTH.