Доступ к ярлыкам в другом веб-контроле на той же странице - PullRequest
1 голос
/ 17 августа 2010

Я использую один Sublayout (Sitecore) и у меня есть placeHolder, который в настоящее время содержит 2 веб-элемента управления.Я хочу получить доступ к метке из одного веб-элемента управления в другой.Должен ли я найти ярлык рекурсивно или я могу просто получить доступ к ярлыку другим способом?Я пробовал разные методы, такие как:

this.Page.Findcontrol this.Parent.Findcontrol и т. Д.Я надеюсь, что кто-то здесь знает, как это исправить.

Ответы [ 2 ]

4 голосов
/ 17 августа 2010

Я не знаком с Sitecore, но если я правильно понимаю ваш вопрос, тогда ваши ярлыки являются дочерними элементами управления одного из веб-элементов управления.Если это так, то для того, чтобы найти эти метки, вам нужно сначала найти их родителя (то есть: webcontrol).

Предположите следующую иерархию элементов управления:

Page
> WebControl1
   > Label
> WebControl2
   > Label
   > Button

доступ к метке на WebControl2 из WebControl1, тогда

Label lblSearchTerm = (Label)this.Parent.FindControl("lblSearchTerm");

не будет работать, потому что this.Parent вернет объект Page, а искомая метка не является дочерней по отношению к странице.Вместо этого он является дочерним по отношению к «WebControl2», который сам является дочерним по отношению к странице.Так что должно работать что-то вроде следующего:

Label lblSearchTerm = (Label)this.Parent.FindControl("WebControl2").FindControl("lblSearchTerm");

Действительно, было бы лучше, если бы владелец метки был единственным, кто изменил его, но это совершенно другое обсуждение.

1 голос
/ 17 августа 2010

Почему бы не использовать this.Page.FindControl? Конечно, этот не выполняет поиск рекурсивно. Но тогда вы можете использовать код, который вы можете найти более здесь .

...