#asp.net #community-server #telligent
#asp.net #сервер сообщества #telligent
Вопрос:
У меня есть элемент управления Reapter с пользовательским элементом управления на стороне сервера внутри него. Когда я размещаю код:
<%# Eval("DateAdded") %>
внутри шаблона элемента повторителя это работает нормально, но когда я помещаю его внутри пользовательского серверного элемента управления внутри повторителя, это не работает.
Возможно ли сделать что-то вроде Parent.Eval() или Container.Eval(), чтобы вернуться к контексту Reapeter, а не к пользовательскому элементу управления?
Ответ №1:
Повторитель привязан к данным, а элемент управления, в который вы помещаете этот оператор eval, — нет. Вам нужно будет передать значение элементу управления с помощью свойства.
Например:
<uc1:MyControl MyProperty='<%# Eval("DateAdded") %>' />
Теперь вы можете получить доступ к MyProperty
свойству внутри вашего элемента управления, чтобы получить доступ к этому значению.
Комментарии:
1. Требуется ли для этого, чтобы MyProperty было определено как свойство заранее, или это можно просто сделать на лету? У меня нет доступа к исходному коду пользовательского элемента управления, поэтому я не могу добавить к нему свойства.
2. Да, это должно было бы быть свойством элемента управления.
Ответ №2:
Это должно сработать. Можете ли вы предоставить больше контекста / кода для серверного элемента управления?
Кроме того, используете ли вы одинарные кавычки для динамической установки свойств элемента управления с помощью eval? Двойные кавычки должны выдавать ошибку, а не просто игнорироваться.
MyProperty='<%# Eval("DateAdded") %>'