Привязать ClientID к свойству UserControl в Gridview - PullRequest
0 голосов
/ 13 января 2011

Я пытаюсь привязать строку, содержащую ClientID одного пользовательского элемента управления, к свойству другого элемента управления в столбце шаблона GridView .Я получаю сообщение об ошибке 'lblVar02' не объявлено.Может быть недоступен из-за уровня защиты. Как мне это сделать?

<uc:CriteriaType id="ctVar02" runat="server" 
    OnClientChange="<%# &quot;toggle('&quot; & lblVar02.ClientID & &quot;');&quot; %>"></uc:CriteriaType>
<uc:Label ID="lblVar02" runat="server" />

1 Ответ

0 голосов
/ 14 января 2011

Для кого-то еще, у кого есть эта проблема, это могло быть решено тремя различными способами, о которых я знаю.

  1. Не передавайте ClientID и не изменяйте JavaScript для обхода через DOM (this.parentNode.getElementsByTagName или что-то еще) в поисках другого элемента управления. Это решение показалось мне неубедительным, поскольку идентификатор мог измениться.
  2. Установите свойство в событии RowDataBound. Это было бы просто, но моя страница огромна, и так как это произошло бы после TrackViewState (), это добавило бы ненужное раздувание к моему ViewState.
  3. Переместить элемент управления lblVar02 внутрь элемента управления ctVar02. Это то, что я в итоге сделал. Я пытался привязать вызов JavaScript к своему свойству пользовательского элемента управления, чтобы затем связать его с клиентским событием "click" элемента управления меткой внутри моего пользовательского элемента управления. Переместив один пользовательский элемент управления в другой, я смог связать вызов JavaScript с ClientID непосредственно с клиентским событием "click" метки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...