如何从代码后面找到嵌套在listView中的FormView

时间:2014-08-24 16:35:23

标签: c# asp.net listview formview

我有一个嵌套在列表视图(listview1)中的表单视图(FormView1)。以下代码不起作用,因为FormView1无法在当前上下文中找到。有什么提示吗?

protected void FormView1_DataBound(object sender, EventArgs e)
    {

        if (FormView1.DataItemCount == 0)
        {
            //do stuff;
        }           

    }

2 个答案:

答案 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;
    }          


    }