2011-01-13 4 views
0

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

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

Это то, что размещено выше в столбце шаблона GridView? –

+0

@Brian, да, это – adam0101

ответ

0

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

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