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>

実行時にlitSiteリテラルのテキストを設定できる必要があります(別の方法に基づいて変更されます)。使ってみると

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

「オブジェクトがオブジェクトのインスタンスに設定されていません」というエラーが発生します。

テンプレート化されたコントロールのソースにアクセスできない場合、テンプレート化されたユーザーコントロール内の子コントロールの値をどのように設定しますか?

4

3 に答える 3

0

リテラルに書き込む代わりに、ラベルに関数を呼び出してテキストを取得させます。テンプレート内で関数を呼び出して、データバインド中に必要なテキストを取得できます。

検索<%#GetLabelText()%>

GetLabelText()関数を定義します。

ここにいくつかのドキュメントがありますEktron8.5SearchView

于 2011-12-18T02:09:14.837 に答える
0

コントロールのソースにアクセスできない場合は、それらが設計したメカニズムを介してコントロールにアクセスする必要があります。ドキュメントをチェックして、それらが何を公開しているかを確認してください。

于 2011-12-15T20:49:03.040 に答える