如何从代码后面找到嵌套在listView中的FormView
本文关键字:嵌套 listView 中的 FormView 代码 | 更新日期: 2023-09-27 18:19:13
我有一个表单视图(FormView1)是嵌套在列表视图(listview1)。下面的代码不起作用,因为在当前上下文中找不到FormView1。任何建议吗?
protected void FormView1_DataBound(object sender, EventArgs e)
{
if (FormView1.DataItemCount == 0)
{
//do stuff;
}
}
我设法通过在ListView中找到FormView作为控件来解决问题,如下所示(在我的情况下,ListView只返回一行):
protected void ListView1_DataBound(object sender, ListViewItemEventArgs e)
{
FormView = (FormView)e.Item.FindControl("FormView1");
if (FormView1.DataItemCount == 0)
{
//do stuff;
}
}
由于FormView嵌套在ListView中,因此FormView的ID对于ListView中的每个项目都是不同的。您可以在查看页面的源代码时看到这一点。它应该看起来像"listview1_ctrl0_FormView1","listview1_ctrl1_FormView1"等。这就是为什么没有找到"FormView1"。
在你的情况下,因为你使用的是FormView的DataBound
处理程序,"sender"对象在这种情况下是实际的FormView。将其转换为FormView,然后就可以了。
FormView FormView1 = (FormView)sender;