DataGridItem.DataItem 屬性

定義

取得或設定資料項目,其由 DataGridItem 控制項中的 DataGrid 物件所表示。

public:
 virtual property System::Object ^ DataItem { System::Object ^ get(); void set(System::Object ^ value); };
public virtual object DataItem { get; set; }
member this.DataItem : obj with get, set
Public Overridable Property DataItem As Object

屬性值

Object

Object,表示 DataGrid 控制項中的資料項目。

範例

下列程式碼範例示範如何使用 DataItem 屬性來顯示 控制項中 DataGrid 資料項目的內容。

注意

下列程式碼範例會使用單一檔案程式碼模型,如果直接複製到程式碼後置檔案,可能無法正常運作。 此程式碼範例必須複製到副檔名為 .aspx 的空白文字檔。

<%@ 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_Created(Object sender, DataGridItemEventArgs e) 
   {
 
      if (e.Item.ItemType == ListItemType.Item ||
          e.Item.ItemType == ListItemType.AlternatingItem ||
          e.Item.ItemType == ListItemType.SelectedItem ||
          e.Item.ItemType == ListItemType.EditItem)

      {   
         Label1.Text += "<br />" + e.Item.ItemType.ToString() +
                        " - " + ((DataRowView)e.Item.DataItem).Row.ItemArray[1].ToString();
      }

      else

      {
         Label1.Text += "<br />" + e.Item.ItemType.ToString();
      }
 
   }
 
</script>
 
<head runat="server">
    <title>DataGridItem DataItem Example</title>
</head>
<body>
 
   <form id="form1" runat="server">

      <h3>DataGridItem DataItem Example</h3>
 
      <asp:DataGrid id="ItemsGrid" runat="server"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           ShowFooter="true"
           OnItemCreated="Item_Created"
           AutoGenerateColumns="true">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>

         <FooterStyle BackColor="#00aaaa">
         </FooterStyle>
   
      </asp:DataGrid>
 
      <br />
 
      <asp:Label id="Label1" 
           Text="Items in the DataGrid Control: <br />" 
           runat="server"/>
 
   </form>
 
</body>
</html>
<%@ Page Language="VB" 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="VB" runat="server">
 
    Dim Cart As DataTable
    Dim CartView As DataView
    
    Function CreateDataSource() As ICollection
        Dim dt As New DataTable()
        Dim dr As DataRow
        
        dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
        dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
        dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
        
        Dim i As Integer
        For i = 0 To 9
            dr = dt.NewRow()
            
            dr(0) = i
            dr(1) = "Item " & i.ToString()
            dr(2) = 1.23 *(i + 1)
            
            dt.Rows.Add(dr)
        Next i
        
        Dim dv As New DataView(dt)
        Return dv
    End Function 'CreateDataSource


    Sub Page_Load(sender As Object, e As EventArgs)
        
        If Not IsPostBack Then
            ' Need to load this data only once.
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()
        End If
    End Sub 'Page_Load
     

    Sub Item_Created(sender As Object, e As DataGridItemEventArgs)
        
        If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.SelectedItem Or e.Item.ItemType = ListItemType.EditItem Then
            
            Label1.Text &= "<br />" & e.Item.ItemType.ToString() & " - " & CType(e.Item.DataItem, DataRowView).Row.ItemArray(1).ToString()
        
        
        Else
            Label1.Text &= "<br />" & e.Item.ItemType.ToString()
        End If
    End Sub 'Item_Created 
 
</script>
 
<head runat="server">
    <title>DataGridItem DataItem Example</title>
</head>
<body>
 
   <form id="form1" runat="server">

      <h3>DataGridItem DataItem Example</h3>
 
      <asp:DataGrid id="ItemsGrid" runat="server"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           ShowFooter="true"
           OnItemCreated="Item_Created"
           AutoGenerateColumns="true">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>

         <FooterStyle BackColor="#00aaaa">
         </FooterStyle>
   
      </asp:DataGrid>
 
      <br />
 
      <asp:Label id="Label1" 
           Text="Items in the DataGrid Control: <br />" 
           runat="server"/>
 
   </form>
 
</body>
</html>

備註

DataItem使用 屬性來指定或決定 控制項中 DataGrid 物件所 DataGridItem 代表之資料項目的屬性。

注意

此屬性僅適用于 控制項中的資料 DataGrid 項。 屬性 ItemType 必須設定為 ListItemType.ItemListItemType.AlternatingItemListItemType.SelectedItemListItemType.EditItem

適用於

另請參閱