如何访问listview的layouttemplate中的控件?

Ser*_*gel 12 asp.net listview

如何设置在用户控件的属性ListViewLayoutTemplate从代码隐藏?

<asp:ListView ...>
<LayoutTemplate>
<myprefix:MyControl id="myControl" ... />
</LayoutTemplate>
...
</asp:ListView>
Run Code Online (Sandbox Code Playgroud)

我想做这个:

myControl.SomeProperty = somevalue;
Run Code Online (Sandbox Code Playgroud)

请注意我的控件不在ItemTemplate,它在LayoutTemplate,所以它不存在于所有项目,它只存在一次.所以我应该能够访问一次,而不是每个数据绑定项.

小智 18

var control = (MyControl)myListView.FindControl("myControlId");
Run Code Online (Sandbox Code Playgroud)

这将有效,但请确保在数据绑定后执行此操作,否则将不会创建LayoutTemplate,从而引发错误.


小智 12

若要设置LayoutTemplate内部控件的属性,只需在ListView控件上使用FindControl方法.

var control = (MyControl)myListView.FindControl("myControlId");
Run Code Online (Sandbox Code Playgroud)