12

コード ビハインドからユーザー コントロールListViewのプロパティを設定するにはどうすればよいですか?LayoutTemplate

<asp:ListView ...>
<LayoutTemplate>
<myprefix:MyControl id="myControl" ... />
</LayoutTemplate>
...
</asp:ListView>

私はこれをしたい:

myControl.SomeProperty = somevalue;

ItemTemplate私のコントロールはではないことに注意してくださいLayoutTemplate。したがって、データにバインドされたすべてのアイテムではなく、一度アクセスできるはずです。

4

6 に答える 6

18
var control = (MyControl)myListView.FindControl("myControlId");

これは機能しますが、データバインド後に実行するようにしてください。そうしないと、LayoutTemplateが作成されないため、エラーがスローされます。

于 2010-10-13T17:13:15.507 に答える
12

LayoutTemplate 内にあるコントロールのプロパティを設定するには、ListView コントロールで FindControl メソッドを使用するだけです。

var control = (MyControl)myListView.FindControl("myControlId");
于 2009-08-22T10:53:40.647 に答える
1

これは、このスタック オーバーフローの質問で回答されています。
ListView の LayoutTemplate 内のコントロールにアクセスする

tanathos によって受け入れられた回答のコメントを参照してください。

これが 1 年以上前に尋ねられたことは知っていますが、これは私がここで見つけた検索用語の最初の結果の 1 つなので、偶然見つけた他の人のために答えを残したいと思いました.

于 2009-11-25T04:09:35.290 に答える
1

各 ListViewItemでFindControlメソッドを使用します。

var control = (MyControl)Item.FindControl("yourControlId");
于 2008-09-07T18:14:01.823 に答える
0

レイアウトが作成され、システムでレイアウトが作成されたことを示すLayoutCreatedイベントが発生します。

次に、listview.FindControlを使用して、そのコントロールへの参照を取得できます。

于 2009-12-26T16:26:52.153 に答える
0

VB.net バージョンが必要な場合は、次の場所にあります。

Dim control = CType(myListView.FindControl("myControlId"), MyControl)
于 2018-10-20T05:04:52.837 に答える