BoundColumn.DataFormatString 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
열에 있는 항목의 표시 형식을 지정하는 문자열을 가져오거나 설정합니다.
public:
virtual property System::String ^ DataFormatString { System::String ^ get(); void set(System::String ^ value); };
public virtual string DataFormatString { get; set; }
member this.DataFormatString : string with get, set
Public Overridable Property DataFormatString As String
속성 값
열에 있는 항목의 표시 형식을 지정하는 서식 지정 문자열입니다. 기본값은 Empty입니다.
예제
다음 예제에서는 사용 하는 방법에 설명 합니다 DataFormatString 속성의 열에 대 한 다양 한 형식 지정을 DataGrid 컨트롤입니다.
Qty
정수로 열 형식이 Price
통화로, 열의 서식이 지정 되는 Weight
열을 십진수로 형식이 및 Expires
열은 간단한 날짜 및 시간 문자열 형식은입니다.
<%@ 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>
<%@ 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>
설명
사용 된 DataFormatString 열에 있는 항목에 대 한 사용자 지정 형식을 제공 하는 속성입니다.
데이터 형식 문자열 형태로 콜론으로 구분 된 두 부분으로 구성 됩니다 { A
: Bxx
}. 예를 들어 서식 문자열이 {0:F2} 두 소수 자릿수를 사용 하 여 고정 소수점 숫자를 표시 합니다.
참고
전체 문자열 서식 문자열 및 리터럴 문자열이 아닌 것을 나타내기 위해 괄호로 묶어야 합니다. 괄호 밖에 텍스트는 리터럴 텍스트로 표시 됩니다.
콜론 앞 값 (A
예:에서) 매개 변수 인덱스가 0부터 시작 하는 매개 변수 목록을 지정 합니다.
참고
각 셀에 값이 하나만 있기 때문에이 값을 0으로 설정할만 있습니다.
콜론 문자 (B
예:에서)의 값을 표시할 형식을 지정 합니다. 다음 표에서 일반 형식을 나열합니다.
형식 문자 | Description |
---|---|
C |
통화 형식으로 숫자 값을 표시합니다. |
D |
10 진수 형식의 숫자 값을 표시합니다. |
E |
과학적 (지 수)의 숫자 값을 표시합니다. |
F |
고정 형식으로 숫자 값을 표시합니다. |
G |
숫자 값을 표시 일반적 서식을 지정합니다. |
N |
숫자 형식의 숫자 값을 표시합니다. |
X |
16 진수 형식의 숫자 값을 표시합니다. |
참고
형식 문자를 제외 하 고 대 소문자를 구분 하지는 X
, 16 진수 문자를 지정 하는 경우를 표시 합니다.
형식 문자 뒤의 값 (xx
예:에서) 유효 자릿수 또는 소수 자릿수의 수를 지정 합니다.
문자열 형식 지정에 대한 자세한 내용은 형식 서식 지정을 참조하세요.
적용 대상
추가 정보
.NET