Container.DataItem是ASP.NET中的一个属性,它表示数据绑定控件(如GridView、Repeater等)中的当前绑定数据项。
在数据绑定控件中,使用Container.DataItem可以获取当前绑定数据项的引用,进而可以在控件中访问和显示数据项的属性值。它通常用于设置控件的文本、图片等属性,以显示绑定数据项的相关信息。
使用Container.DataItem时,需要将其转换为实际的数据类型(例如,使用强制类型转换)才能访问数据项的属性。例如,如果绑定的数据项是一个自定义的类对象,可以使用类的属性来访问数据项的具体属性值。
以下是一个示例,展示了如何在GridView中使用Container.DataItem属性获取数据项并显示其中的属性值:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Age" HeaderText="Age" />
</Columns>
</asp:GridView>
在代码中,可以使用Container.DataItem属性访问绑定的数据项,并通过指定属性名称来显示数据项中的具体属性值:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<Person> persons = new List<Person>();
persons.Add(new Person { Name = "John", Age = 25 });
persons.Add(new Person { Name = "Jane", Age = 30 });
GridView1.DataSource = persons;
GridView1.DataBind();
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Person person = (Person)e.Row.DataItem; // 使用Container.DataItem获取数据项并进行类型转换
e.Row.Cells[0].Text = person.Name; // 显示Name属性值
e.Row.Cells[1].Text = person.Age.ToString(); // 显示Age属性值
}
}
在GridView1_RowDataBound事件中,通过类型转换将Container.DataItem属性转换为Person类对象,并使用该对象的属性来显示数据项中的具体值。