BoundColumn.DataFormatString プロパティ

列内の項目の表示形式を指定する文字列を取得または設定します。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public Overridable Property DataFormatString As String
'使用
Dim instance As BoundColumn
Dim value As String

value = instance.DataFormatString

instance.DataFormatString = value
public virtual string DataFormatString { get; set; }
public:
virtual property String^ DataFormatString {
    String^ get ();
    void set (String^ value);
}
/** @property */
public String get_DataFormatString ()

/** @property */
public void set_DataFormatString (String value)
public function get DataFormatString () : String

public function set DataFormatString (value : String)
適用できません。

プロパティ値

列内の項目の表示形式を指定する書式指定文字列。既定値は String.Empty です。

解説

DataFormatString プロパティを使用して、列内の項目にカスタム書式を指定します。

データ書式指定文字列は、{ A : Bxx } の書式で、コロンで区切られた 2 つの部分から構成されます。たとえば、書式指定文字列 {0:F2} を使用すると、2 桁の固定小数点数で表示されます。

メモメモ :

文字列の全体はリテラル文字列ではなく、書式指定文字列であることを示すために、中かっこ ({}) で囲む必要があります。かっこの外側のテキストはリテラル テキストとして表示されます。

コロンの前の値 (一般的な例での A) は 0 から始まるパラメータのリストのパラメータ インデックスを指定します。

メモメモ :

各セルには 1 つの値しかないため、この値は必ず 0 に設定します。

コロンの後の文字 (一般的な例での B) は値を表示する書式を指定します。共通の書式を次の表に示します。

書式指定文字

説明

C

通貨書式で数値を表示します。

D

10 進数書式で数値を表示します。

E

指数書式で数値を表示します。

F

固定書式で数値を表示します。

G

一般書式で数値を表示します。

N

数値書式で数値を表示します。

X

16 進数書式で数値を表示します。

メモメモ :

書式指定文字では、X を除き大文字と小文字が区別されません。X は大文字または小文字を指定した 16 進数文字を表示します。

書式指定文字の後の値 (一般的な例での xx) は、表示する有効桁数または小数点を指定します。

書式指定文字列の詳細については、「書式設定の概要」を参照してください。

使用例

DataFormatString プロパティを使用して、DataGrid コントロールの各列にさまざまな書式を指定する方法を次の例に示します。Qty 列には整数の書式、Price 列には通貨の書式、Weight 列には小数の書式、および Expires 列には短い日付と時刻の文字列の書式がそれぞれ設定されます。

<%@ Page language="VB" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Globalization" %>

<!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" >
    <head runat="server">
        <title>BoundColumn Example</title>
    </head>
    <script runat="server">
  
       ' The Cart and CartView objects temporarily store the data source 
       ' for the DataGrid control while the page is being processed.
       Dim Cart As DataTable
       Dim CartView As DataView   
 
       Sub Page_Load(sender as Object, e As EventArgs) 
 
          ' With a database, use a select query to retrieve the data. 
          ' Because the data source in this example is an in-memory 
          ' DataTable, retrieve the data from session state if it exists; 
          ' otherwise, create the data source.
          GetSource()

          ' The DataGrid control maintains state between posts to the 
          ' server; therefore it only needs to be bound to a data source 
          ' the first time the page is loaded or when the data source 
          ' is updated.
          If Not IsPostBack Then

             BindGrid()

          End If
                   
       End Sub
 
       Sub ItemsGrid_Edit(sender As Object, e As DataGridCommandEventArgs) 
 
          ' Set the EditItemIndex property to the index of the item 
          ' clicked in the DataGrid control to enable editing for that
          ' item. Be sure to rebind the DateGrid to the data source 
          ' to refresh the control.
          ItemsGrid.EditItemIndex = e.Item.ItemIndex
          BindGrid()
 
       End Sub
  
       Sub ItemsGrid_Cancel(sender As Object, e As DataGridCommandEventArgs) 
 
          ' Set the EditItemIndex property to -1 to exit editing mode.  
          ' Be sure to rebind the DateGrid to the data source to 
          ' refresh the control.
          ItemsGrid.EditItemIndex = -1
          BindGrid()
 
       End Sub
  
       Sub ItemsGrid_Update(sender As Object, e As DataGridCommandEventArgs) 
 
          ' Retrieve the updated values.
          ' For bound columns, the edited value is stored in a TextBox.
          ' The TextBox is the 0th control in a cell's Controls collection.
          ' Each cell in the Cells collection of a DataGrid item represents
          ' a column in the DataGrid control.
          Dim updateItem As DataGridItem
             updateItem = e.Item
 
          Dim qtyText As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox)
          Dim priceText As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox)
 
          Try 
              ' Try to parse the updated values from the input text.
              Dim newQty As Int32
              Dim newPrice As Decimal
             
              newQty = Int32.Parse(qtyText.Text, NumberStyles.Number)
              newPrice = Decimal.Parse(priceText.Text, NumberStyles.Currency)
 
              ' Get the item cell value - "Item 1", "Item 2", etc.
              ' For read-only columns, the value is stored in the cell text.
              Dim item As String = updateItem.Cells(1).Text
         
  
              ' With a database, use an update command to update the data. Because 
              ' the data source in this example is an in-memory DataTable, delete 
              ' the old row and replace it with a new one.
 
              ' Remove the old entry and clear the row filter.
              CartView.RowFilter = "Item='" & item & "'"
              If CartView.Count > 0 Then
             
                  CartView.Delete(0)
          
              End If
 
              CartView.RowFilter = ""
  
              ' Add the new entry.
              Dim dr As DataRow
              dr = Cart.NewRow()
 
              dr("Item") = item
              dr("Qty") = newQty
              dr("Price") = newPrice
              dr("Weight") = updateItem.Cells(4).Text
              dr("Expires") = updateItem.Cells(5).Text
              

              Cart.Rows.Add(dr)
          Catch ex As System.FormatException

             ' If parsing the price or quantity caused an 
             ' exception, then leave edit mode without
             ' changing any cell values.
          End Try
 
          ' Set the EditItemIndex property to -1 to exit editing mode. 
          ' Be sure to rebind the DateGrid to the data source to refresh
          ' the control.
          ItemsGrid.EditItemIndex = -1
          BindGrid()

       End Sub
 
       Sub BindGrid() 
       
          ' Set the data source and bind to the Data Grid control.
          ItemsGrid.DataSource = CartView
          ItemsGrid.DataBind()
 
       End Sub
 
       Sub GetSource()
 
          ' For this example, the data source will be a DataTable that is
          ' stored in session state.
          ' If the data source does not exist, create it; otherwise, 
          ' load the data.
          If Session("ShoppingCart") Is Nothing Then 
 
              Cart = New DataTable
              InitSource()
 
          Else
 
             ' Retrieve the sample data from session state.
             Cart = CType(Session("ShoppingCart"), DataTable)
 
          End If         
  
          ' Create a DataView and specify the field to sort by.
          CartView = New DataView(Cart)
          CartView.Sort="Item"
 
          Return
 
       End Sub
 
       Sub InitSource()
 
           ' Create the sample data.
  
           ' Define the columns of the table.
            Cart.Columns.Add(New DataColumn("Qty", GetType(System.Int32)))
            Cart.Columns.Add(New DataColumn("Item", GetType(System.String)))
            Cart.Columns.Add(New DataColumn("Price", GetType(System.Decimal)))
            Cart.Columns.Add(New DataColumn("Weight", GetType(System.Decimal)))
            Cart.Columns.Add(New DataColumn("Expires", GetType(System.DateTime)))

           ' Store the table in session state to persist its values 
           ' between posts to the server.
           Session("ShoppingCart") = Cart
             
           ' Populate the DataTable with sample data.
           ' The generated table row data look like this:

           Dim dr As DataRow
           Dim i As Integer

           For i = 1 to 4 
          
               dr = Cart.NewRow()
               dr("Qty") = i Mod 2 + 1
               dr("Item") = "Item " + i.ToString()
               dr("Price") = (0.5 * (i + 1))
               dr("Weight") = 5.0
               dr("Expires") = DateTime.Now + TimeSpan.FromDays(7)
               Cart.Rows.Add(dr)

           Next
       End Sub
    </script>
    <body>
        <form runat="server" id="form1">
            <h3>BoundColumn DataFormatString Example</h3>
            <asp:DataGrid id="ItemsGrid" 
                BorderColor="black" BorderWidth="1" CellPadding="3"
                OnEditCommand="ItemsGrid_Edit" OnCancelCommand="ItemsGrid_Cancel" 
                OnUpdateCommand="ItemsGrid_Update" AutoGenerateColumns="false"
                runat="server" >

                <HeaderStyle backcolor="#aaaadd"></HeaderStyle>

                <Columns>
                    <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" 
                         UpdateText="Update" HeaderText="Edit Command Column">
                        <ItemStyle Wrap="False"></ItemStyle>
                        <HeaderStyle wrap="false"></HeaderStyle>
                    </asp:EditCommandColumn>

                    <asp:BoundColumn HeaderText="Item" DataField="Item" 
                                     ReadOnly="True" />

                    <asp:BoundColumn HeaderText="Quantity" DataField="Qty" 
                                     DataFormatString="{0:N0}"/>

                    <asp:BoundColumn HeaderText="Price" DataField="Price"
                                     DataFormatString="{0:c}" />

                    <asp:BoundColumn HeaderText="Weight" DataField="Weight" 
                                     ReadOnly="True" DataFormatString="{0:F3}" />

                    <asp:BoundColumn HeaderText="Expires" DataField="Expires" 
                                     ReadOnly="True" DataFormatString="{0:g}" />

                </Columns>
            </asp:DataGrid>
        </form>
    </body>
</html>
<%@ Page language="c#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Globalization" %>

<!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" >
    <head runat="server">
        <title>BoundColumn Example</title>
    </head>
       <script runat="server">
        // The Cart and CartView objects temporarily store the data source
        // for the DataGrid control while the page is being processed.
        DataTable Cart;
        DataView CartView;   
 
        void Page_Load(Object sender, EventArgs e) 
        {
            // With a database, use a select query to retrieve the data. 
            // Because the data source in this example is an in-memory 
            // DataTable, retrieve the data from session state if it exists; 
            // otherwise, create the data source.
            GetSource();

            // The DataGrid control maintains state between posts to the 
            // server; therefore it only needs to be bound to a data source 
            // the first time the page is loaded or when the data source 
            // is updated.
            if (!IsPostBack)
            {
                BindGrid();
            }
        }
 
        void ItemsGrid_Edit(Object sender, DataGridCommandEventArgs e) 
        {
            // Set the EditItemIndex property to the index of the item 
            // clicked in the DataGrid control to enable editing for that
            // item. Be sure to rebind the DateGrid to the data source 
            // to refresh the control.
            ItemsGrid.EditItemIndex = e.Item.ItemIndex;
            BindGrid();
        }
 
        void ItemsGrid_Cancel(Object sender, DataGridCommandEventArgs e) 
        {
            // Set the EditItemIndex property to -1 to exit editing mode.  
            // Be sure to rebind the DateGrid to the data source to 
            // refresh the control.
            ItemsGrid.EditItemIndex = -1;
            BindGrid();
        }
 
        void ItemsGrid_Update(Object sender, DataGridCommandEventArgs e) 
        {
            // Retrieve the updated values.
            // For bound columns, the edited value is stored in a TextBox.
            // The TextBox is the 0th control in a cell's Controls collection.
            // Each cell in the Cells collection of a DataGrid item represents
            // a column in the DataGrid control.
            DataGridItem updateItem = e.Item;

            TextBox qtyText = (TextBox)updateItem.Cells[2].Controls[0];
            TextBox priceText = (TextBox)updateItem.Cells[3].Controls[0];
            
            try {
                // Try to parse the updated values from the input text.
                Int32 newQty;
                Decimal newPrice;
            
                newQty = Int32.Parse(qtyText.Text, NumberStyles.Number);
                newPrice = Decimal.Parse(priceText.Text, NumberStyles.Currency);

                // Get the item cell value - "Item 1", "Item 2", etc.
                // For read-only columns, the value is stored in the cell text.
                String item = updateItem.Cells[1].Text;
       
                // With a database, use an update command to update the data. 
                // Because the data source in this example is an in-memory
                // DataTable, delete the old row and replace it with a new one.
    
                // Filter on the updated item, remove it,
                // then clear the row filter.
                CartView.RowFilter = "Item='" + item + "'";
                if (CartView.Count > 0)
                {
                    CartView.Delete(0);
                }
                CartView.RowFilter = "";
 
                // Add the updated entry for the item.
                DataRow dr = Cart.NewRow();
                dr["Item"] = item;
                dr["Qty"] = newQty;
                dr["Price"] = newPrice;
                dr["Weight"] = updateItem.Cells[4].Text;
                dr["Expires"] = updateItem.Cells[5].Text;
            
                Cart.Rows.Add(dr);
            }
            catch (System.FormatException)
            {
                // If parsing the price or quantity caused an 
                // exception, then leave edit mode without
                // changing any cell values.
            }

            // Set the EditItemIndex property to -1 to exit editing mode.  
            // Be sure to rebind the DataGrid to the data source to refresh
            // the control.
            ItemsGrid.EditItemIndex = -1;
            BindGrid();
        }
 
        void BindGrid() 
        {
            // Set the data source and bind to the Data Grid control.
            ItemsGrid.DataSource = CartView;
            ItemsGrid.DataBind();
        }

        void GetSource()
        {
            // For this example, the data source is a DataTable that is 
            // stored in session state.
            // If the data source does not exist, create it; otherwise, 
            // load the data.
            
            if (Session["ShoppingCart"] == null) 
            {     
                Cart = new DataTable();
                InitSource();
            } 
            else
            {
                // Retrieve the sample data from session state.
                Cart = (DataTable)Session["ShoppingCart"];
            }         
 
            // Create a DataView and specify the field to sort by.
            CartView = new DataView(Cart);
            CartView.Sort="Item";

            return;
        }
        
        void InitSource()
        {
            // Create the sample data.
 
            // Define the columns of the table.
            Cart.Columns.Add(new DataColumn("Qty", typeof(Int32)));
            Cart.Columns.Add(new DataColumn("Item", typeof(String)));
            Cart.Columns.Add(new DataColumn("Price", typeof(Decimal)));
            Cart.Columns.Add(new DataColumn("Weight", typeof(Decimal)));
            Cart.Columns.Add(new DataColumn("Expires", typeof(DateTime)));

            // Store the table in session state to persist its values 
            // between posts to the server.
            Session["ShoppingCart"] = Cart;
            
            // Populate the DataTable with sample data.
            DataRow dr;  

            for (int i = 1; i <= 4; i++) 
            {
                dr = Cart.NewRow();
                dr["Qty"] = i % 2 + 1;
                dr["Item"] = "Item " + i.ToString();
                dr["Price"] = (0.50 * (i + 1));
                dr["Weight"] = 5.0;
                dr["Expires"] = DateTime.Now + TimeSpan.FromDays(7);
                Cart.Rows.Add(dr);
            }
        }
        </script>
    <body>
        <form runat="server" id="form1">
            <h3>BoundColumn DataFormatString Example</h3>
            <asp:DataGrid id="ItemsGrid" 
                BorderColor="black" BorderWidth="1" CellPadding="3"
                OnEditCommand="ItemsGrid_Edit" OnCancelCommand="ItemsGrid_Cancel" 
                OnUpdateCommand="ItemsGrid_Update" AutoGenerateColumns="false"
                runat="server" >

                <HeaderStyle backcolor="#aaaadd"></HeaderStyle>

                <Columns>
                    <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" 
                         UpdateText="Update" HeaderText="Edit Command Column">
                        <ItemStyle Wrap="False"></ItemStyle>
                        <HeaderStyle wrap="false"></HeaderStyle>
                    </asp:EditCommandColumn>

                    <asp:BoundColumn HeaderText="Item" DataField="Item" 
                                     ReadOnly="True" />

                    <asp:BoundColumn HeaderText="Quantity" DataField="Qty" 
                                     DataFormatString="{0:N0}"/>

                    <asp:BoundColumn HeaderText="Price" DataField="Price"
                                     DataFormatString="{0:c}" />

                    <asp:BoundColumn HeaderText="Weight" DataField="Weight" 
                                     ReadOnly="True" DataFormatString="{0:F3}" />

                    <asp:BoundColumn HeaderText="Expires" DataField="Expires" 
                                     ReadOnly="True" DataFormatString="{0:g}" />

                </Columns>
            </asp:DataGrid>
        </form>
    </body>
</html>

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

BoundColumn クラス
BoundColumn メンバ
System.Web.UI.WebControls 名前空間
String.Empty
DataGrid

その他の技術情報

カスタム数値書式指定文字列
カスタム DateTime 書式指定文字列
書式設定の概要