Как использовать динамические объекты с asp.net? - PullRequest
2 голосов
/ 16 июля 2010

У меня есть динамический объект, встроенный в IronPython, и я хотел бы динамически создавать элементы управления на моей странице asp.net в зависимости от того, какие типы объектов вложены в мой динамический объект:

dynamic variousComplexObjects = IronPythonApp.GetControls();
repeater.DataSource = variousComplexObjects;
repeater.DataBind();

Может кто-нибудь написатьбыстрый пример того, что делать дальше?Я уверен, что есть учебник, который делает что-то подобное, но у меня возникли некоторые проблемы с поиском в Google.Не стесняйтесь рекомендовать мне правильные ключевые слова или указывать на правильное использование данных DLR в приложении asp.net.

Спасибо !!

Ответы [ 3 ]

2 голосов
/ 16 июля 2010

Предполагая, что вы используете .net 4, вы можете просто использовать динамический в событии, связанном с данными.

repeater.ItemDataBound += OnItemDataBound;

protected void OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
  dynamic dynObj = (dynamic)e.DataItem;
  string text = dynObj.Text; // Etc.
}

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

0 голосов
/ 16 июля 2010

Спасибо .. Я думаю, никто не кодирует в традиционных веб-формах asp.net и динамических объектах.Вероятно, есть способ сделать это ... но я просто переключился на MVC.

0 голосов
/ 16 июля 2010

Вот тема, озаглавленная " Объект привязки данных со свойствами 'dynamic' ".Он включает создание пользовательских методов get и set для типа.

Это не совсем соответствует вашему сценарию C # dynamic и получению данных из DLR, но это может помочь.

Вот еще одна тема под названием « Могу ли я привязать данные к коллекции динамического класса ».Автор создал динамический класс, используя Reflection.Emit.

Прокомментируйте, если какое-либо из этих решений подходит для вашего случая.Я также заинтересован в решении, но на данный момент у меня нет платы за тестирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...