Прежде чем я перейду к вопросу, позвольте мне немного рассказать об этом. Я пытаюсь разработать собственный механизм кэширования, который я могу применить к пользовательским пользовательским элементам. (Имейте в виду, что я знаю, что в .NET есть встроенный механизм кеширования). В зависимости от определенных флагов, объявленных декларативно в разметке, элемент управления должен загружать кэшированную версию ранее обработанного содержимого или выполнять нормально (и если определенные флаги установлены, он должен генерировать кеш его содержимого для следующего загружаемого момента). Я хотел бы иметь возможность передавать определенные флаги декларативно в разметке и проверять их значение в Page Init и, в зависимости от значения флага, определять, должен ли элемент управления загружать кешированную версию или нет.Возможно ли «DataBind» создать одно свойство пользовательского элемента управления?
<uc:MyUC ID="N1" runat="server"
CacheProp='<%# SomeEnum.A | SomeEnum.B |SomeEnum.C %>'
PropA='<%# this.SomePropA %>'
PropB='<%# (this.SomePropB %>'
PropC='<%# this.SomePropC %>'
/>
Проблема, с которой я столкнулся в том, что, насколько я знаю, я могу получить только значение свойств декларативно, назначенных в наценки, если я назвал DataBind(). Однако я столкнулся с двумя проблемами: Сначала вызов this.DataBind()
изнутри MyUC
вызовет привязку всех его дочерних элементов управления, которые победят цель кеша; также были созданы все пользовательские элементы управления, чтобы они не вызывали DataBind()
до того, как было запущено событие LoadComplete
, поэтому чтобы убедиться, что родительские элементы управления, в которых они живут, выполнили свою инициализацию и вычислили свойства, которые декларативно переданы в дочерний элемент управления пользователя (т.е. PropA
, PropB
, PropC
).
И теперь возникает вопрос: существует ли способ связать свойство CacheProp
, чтобы получить его значение без привязки данных ко всем другим свойствам и без инициирования привязки данных всех его дочерних элементов управления?
Спасибо за помощь!
Джузеппе
Я начинаю считать, что это не возможно! :( – 2010-12-03 20:56:00