DataGrid.ItemDataBound (Evento)
Ensamblado: System.Web (en system.web.dll)
El evento ItemDataBound se provoca después del enlace de datos de un elemento al control DataGrid. Este evento proporciona la última oportunidad de acceso al elemento de datos antes de que se muestre en el cliente. Una vez provocado el evento, el elemento de datos se anula y deja de estar disponible.
Para obtener más información sobre control de eventos, vea Utilizar eventos.
En el ejemplo de código siguiente se muestra cómo especificar y crear código de controlador para el evento ItemDataBound de modo que se muestre el orden en que los elementos del control DataGrid se enlazan a los datos.
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <script language="C#" runat="server"> DataTable Cart; DataView CartView; ICollection CreateDataSource() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(string))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); for (int i = 0; i < 10; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = 1.23 * (i+1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { if (!IsPostBack) { // Need to load this data only once. ItemsGrid.DataSource = CreateDataSource(); ItemsGrid.DataBind(); } } void Item_Bound(Object sender, DataGridItemEventArgs e) { Label1.Text = Label1.Text + " " + e.Item.ItemIndex; } </script> <head runat="server"> <title>DataGrid ItemDataBound Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataGrid ItemDataBound Example</h3> <asp:DataGrid id="ItemsGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" ShowFooter="true" OnItemDataBound="Item_Bound" AutoGenerateColumns="true"> <HeaderStyle BackColor="#00aaaa"> </HeaderStyle> <FooterStyle BackColor="#00aaaa"> </FooterStyle> </asp:DataGrid> <br /> <asp:Label id="Label1" Text="Order of items data bound: " runat="server"/> <br /> <asp:Label id="Label2" Text="Note: The -1's refer to the header and footer." runat="server"/> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" Debug="true" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataGrid control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(String))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(Double))); // Populate the table with sample values. for (int i=0; i<=10; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { // Load sample data only once, when the page is first loaded. if (!IsPostBack) { ItemsGrid.DataSource = CreateDataSource(); ItemsGrid.DataBind(); } } void Item_Bound(Object sender, DataGridItemEventArgs e) { // Use the ItemDataBound event to customize the DataGrid control. // The ItemDataBound event allows you to access the data before // the item is displayed in the control. In this example, the // ItemDataBound event is used to format the items in the // CurrencyColumn in currency format. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) { // Retrieve the text of the CurrencyColumn from the DataGridItem // and convert the value to a Double. Double Price = Convert.ToDouble(e.Item.Cells[2].Text); // Format the value as currency and redisplay it in the DataGrid. e.Item.Cells[2].Text = Price.ToString("c"); } } </script> <head runat="server"> <title>DataGrid ItemDataBound Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataGrid ItemDataBound Example</h3> <asp:DataGrid id="ItemsGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" ShowFooter="true" OnItemDataBound="Item_Bound"> <HeaderStyle BackColor="#00aaaa"> </HeaderStyle> <FooterStyle BackColor="#00aaaa"> </FooterStyle> </asp:DataGrid> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataGrid control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(String))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(Double))); // Populate the table with sample values. for (int i=0; i<=10; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { // Manually register the event-handling method for the // ItemDataBound event of the DataGrid control. ItemsGrid.ItemDataBound += new DataGridItemEventHandler(this.Item_Bound); // Load sample data only once, when the page is first loaded. if (!IsPostBack) { ItemsGrid.DataSource = CreateDataSource(); ItemsGrid.DataBind(); } } void Item_Bound(Object sender, DataGridItemEventArgs e) { // Use the ItemDataBound event to customize the DataGrid control. // The ItemDataBound event allows you to access the data before // the item is displayed in the control. In this example, the // ItemDataBound event is used to format the items in the // CurrencyColumn in currency format. if((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) { // Retrieve the text of the CurrencyColumn from the DataGridItem // and convert the value to a Double. Double Price = Convert.ToDouble(e.Item.Cells[2].Text); // Format the value as currency and redisplay it in the DataGrid. e.Item.Cells[2].Text = Price.ToString("c"); } } </script> <head runat="server"> <title>DataGrid ItemDataBound Example</title> </head> <body> <form id="form1" runat="server"> <h3>DataGrid ItemDataBound Example</h3> <asp:DataGrid id="ItemsGrid" runat="server" BorderColor="black" BorderWidth="1" CellPadding="3" ShowFooter="true"> <HeaderStyle BackColor="#00aaaa"> </HeaderStyle> <FooterStyle BackColor="#00aaaa"> </FooterStyle> </asp:DataGrid> </form> </body> </html>
Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter
Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.