现在的位置: 首页 > 综合 > 正文

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

2013年02月24日 ⁄ 综合 ⁄ 共 799字 ⁄ 字号 评论关闭

在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值

抱歉!评论已关闭.