使用FindControl检索ListView

时间:2011-02-13 15:30:55

标签: c# asp.net

我正在尝试从ascx控件中检索两个listviews,以便将它们保存为PDF文件:

<TagCloud:TagCloudControl ID="TagCloudControl1" runat="server" />

我收到以下错误:TagCloudControl1是一个字段但是像类型一样使用,非静态字段,方法或属性需要对象引用...感谢您的帮助!

ListView lv1 = (TagCloudControl1)ListView.FindControl("ListView1");
ListView lv2 = (TagCloudControl1)ListView.FindControl("ListView2");

lv1.RenderControl(htWriter);
lv2.RenderControl(htWriter);

2 个答案:

答案 0 :(得分:1)

我从未见过或使用静态FindControl()方法。

From MSDN for FindControl()

  

搜索当前的命名容器   用于服务器控件   指定的id参数。

显然,如果您尝试查找的列表视图不在模板中,您应该能够直接在代码隐藏中访问它们。但如果它在一个模板中,例如GridView的Row,那么你就可以像这样访问它。

ListView listView1 = (ListView) GridView1.Rows[0].FindControl("ListView1");

答案 1 :(得分:0)

您的代码应更改为:

var lv1 = (TagCloudControl)ListView.FindControl("ListView1");
var lv2 = (TagCloudControl)ListView.FindControl("ListView2");