2011-12-15 1 views
1
<cc1:SiteSearchInputView ID="ssInputView" ControllerID="ssController" runat="server"> 
    <ItemTemplate> 
     <table border="0" cellspacing="0" cellpadding="0"> 
       <tr> 
      <td><label>Search <asp:Literal ID="litSite" runat="server" /></label></td> 
      <td><asp:TextBox ID="tbSearchText" runat="server" /></td> 
      <td><asp:Button ID="btnSearch" CssClass="searchBTN" runat="server" /></td> 
      </tr> 
      </table> 
    </ItemTemplate> 
</cc1:SiteSearchInputView> 

Мне нужно уметь устанавливать текст для litest-литерального потока во время выполнения (он изменяется на основе другого метода). Когда я пытаюсь использоватьПоиск детского контроля внутри шаблона usercontrol

Literal l = (Literal) ssInputView.FindControl("litSite"); 

Я получаю сообщение об ошибке «Объект не установлен в экземпляр объекта».

Как вы устанавливаете значение дочернего элемента управления в шаблоном пользовательском элементе управления, когда у вас нет доступа к источнику шаблонного элемента управления?

+0

Вы получаете исключение при вызове .FindControl() или при попытке использовать «L»? – n8wrl

+0

Я получаю исключение, когда пытаюсь вызвать FindControl. – Tim

ответ

0

Контроллер связывает свои данные в Page_Load, поэтому вы можете получить доступ только к своим элементам управления. Кроме того, вам не нужно использовать FindControl, потому что дочерние элементы управления доступны напрямую. Так что это сработает для вас:

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    Literal1.Text = "Hello, World"; 
} 
+0

Спасибо за подсказку, Билл! Я пытался получить доступ к элементу управления слишком рано в жизненном цикле страницы. – Tim

0

Если у вас нет доступа к источнику управления, вам необходимо получить доступ к элементу управления с помощью механизмов, которые они разработали для вас. Проверьте документацию, чтобы узнать, что она выставляет.

+0

Это пользовательский элемент управления Ektron для поиска по сайту. – Tim

0

Вместо того, чтобы писать в буквальном виде, позвоните в функцию, чтобы получить ее текст. Внутри шаблона вы можете вызвать функцию, чтобы получить текст, который вы хотите во время привязки данных.

< Поиск% # GetLabelText()%>

Вы бы определить функцию GetLabelText().

Существует некоторая документация здесь Ektron 8.5 SearchView

 Смежные вопросы

  • Нет связанных вопросов^_^