在Repeater和ListView中如何获取子控件

在Asp.Net的cs后置文件中不能直接用控件ID来操作数据绑定控件中的子控件,必须用FindControl找到控件才能操作。

    //查找Repeater中的子控件

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)

    {

        // e.Item.ItemType 为当前行的类型

        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

        {

            // 找到ID为btnDelete的TextBox控件,e.Item表示当前绑定的那一行 

            TextBox txtName = (TextBox)e.Item.FindControl("btnDelete");

            txtName.Text = "我是Repeater中被查找的子控件";

        }

    }



    //查找ListView中的子控件

    protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)

    {

        //这里和Repeater稍有不同

        if (e.Item.ItemType == ListViewItemType.DataItem)

        {

            TextBox txtName = (TextBox)e.Item.FindControl("btnDelete");

            txtName.Text = "我是ListView中被查找的子控件";

        }

    }




在Repeater中绑定DataTable后,获取当前数据行的某个字段值:

DataRow row = (DataRow)((DataRowView)e.Item.DataItem).Row;

string ParentID = row["ParentID"].ToString(); // 获取当前数据行的ParentID值

你可能感兴趣的:(ListView)