RepeaterとListViewでのサブコントロールの取得方法

1175 ワード

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値の取得