我有一个嵌套在列表视图(listview1)中的表单视图(FormView1)。以下代码不起作用,因为FormView1无法在当前上下文中找到。有什么提示吗?
protected void FormView1_DataBound(object sender, EventArgs e)
{
if (FormView1.DataItemCount == 0)
{
//do stuff;
}
}
答案 0 :(得分:0)
由于FormView嵌套在ListView中,因此ListView中的每个项目的FormView的ID都不同。您可以在查看页面来源时看到此信息。它应该看起来像“listview1_ctrl0_FormView1”,“listview1_ctrl1_FormView1”等。这就是为什么只是简单地找不到“FormView1”。
在您的情况下,由于您使用的是FormView的DataBound
处理程序,因此本例中的“sender”对象是实际的FormView。将它转换为FormView,你应该很高兴。
FormView FormView1 = (FormView)sender;
答案 1 :(得分:0)
我设法通过在ListView中找到FormView作为控件来解决问题,如下所示(在我的情况下,ListView只返回一行):
protected void ListView1_DataBound(object sender, ListViewItemEventArgs e)
{
FormView = (FormView)e.Item.FindControl("FormView1");
if (FormView1.DataItemCount == 0)
{
//do stuff;
}
}