DataGridColumn.SortExpression プロパティ
アセンブリ: System.Web (system.web.dll 内)

Dim instance As DataGridColumn Dim value As String value = instance.SortExpression instance.SortExpression = value
/** @property */ public String get_SortExpression () /** @property */ public void set_SortExpression (String value)
並べ替えのために列が選択された場合に、OnSortCommand に渡されるフィールドの名前。既定値は String.Empty です。

並べ替えのために列が選択された場合に OnSortCommand メソッドに渡されるフィールドの名前を SortExpression プロパティを使用して指定または確認します。
![]() |
---|
このプロパティは、列をデータ ソース内のフィールドにバインドしません。列をフィールドにバインドする場合は、特定の列型に関するドキュメントを参照してください。 |
並べ替えが有効である場合、LinkButton コントロールは、SortExpression プロパティが設定されているそれぞれの列の見出しセクションに表示されます。
![]() |
---|
AutoGenerateColumns プロパティが true に設定されている場合、データ連結をサポートする DataGrid コントロールの各列の SortExpression プロパティは、自動的に列に連結されたフィールド名に自動的に設定されます。AutoGenerateColumns プロパティを false に設定している場合は、並べ替えを有効にするそれぞれの列について、SortExpression プロパティに、列にバインドされたフィールド名を手動で設定する必要があります。 |
これらの LinkButton コントロールにより、選択した列ごとに DataGrid コントロールを並べ替えることができます。列の LinkButton コントロールをクリックすると、SortCommand イベントが発生します。選択した列の SortExpression プロパティの値が、DataGridSortCommandEventArgs オブジェクトの一部として OnSortCommand イベント ハンドラに渡されます。

SortExpression プロパティを使用して、並べ替えに使用するフィールド名を指定する方法を次のコード例に示します。
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> Function CreateDataSource() As ICollection ' Create a Random object to mix up the order of items in the ' sample data. Dim Rand_Num As Random = New Random() ' Create sample data for the DataGrid control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", GetType(Int32))) dt.Columns.Add(new DataColumn("StringValue", GetType(String))) dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double))) ' Populate the table with sample values. Dim i As Integer For i = 0 To 8 dr = dt.NewRow() dr(0) = i dr(1) = "Item " & Rand_Num.Next(1, 15).ToString() dr(2) = 1.23 * Rand_Num.Next(1, 15) dt.Rows.Add(dr) Next i ' To persist the data source between posts to the server, ' store it in session state. Session("Source") = dt Dim dv As DataView = New DataView(dt) Return dv End Function Sub Page_Load(sender As Object, e As EventArgs) ' Load sample data only once, when the page is first loaded. If Not IsPostBack Then ItemsGrid.DataSource = CreateDataSource() ItemsGrid.DataBind() End If End Sub Sub Sort_Grid(sender As Object, e As DataGridSortCommandEventArgs) ' Retrieve the data source from session state. Dim dt As DataTable = CType(Session("Source"), DataTable) ' Create a DataView from the DataTable. Dim dv As DataView = New DataView(dt) ' The DataView provides an easy way to sort. Simply set the ' Sort property with the name of the field to sort by. dv.Sort = e.SortExpression ' Re-bind the data source and specify that it should be sorted ' by the field specified in the SortExpression property. ItemsGrid.DataSource = dv ItemsGrid.DataBind() End Sub </script> <body> <form runat=server> <h3>DataGrid SortExpression Example</h3> <b>Product List</b> <asp:DataGrid id="ItemsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" OnSortCommand="Sort_Grid" AutoGenerateColumns="False" AllowSorting="True" runat="server"> <HeaderStyle BackColor="#00aaaa"> </HeaderStyle> <Columns> <asp:BoundColumn DataField="IntegerValue" SortExpression="IntegerValue" HeaderText="Item"/> <asp:BoundColumn DataField="StringValue" SortExpression="StringValue" HeaderText="Description"/> <asp:BoundColumn DataField="CurrencyValue" HeaderText="Price" SortExpression="CurrencyValue" DataFormatString="{0:c}"> <ItemStyle HorizontalAlign="Right"> </ItemStyle> </asp:BoundColumn> </Columns> </asp:DataGrid> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> ICollection CreateDataSource() { // Create a Random object to mix up the order of items in the // sample data. Random Rand_Num = new Random(); // 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<=8; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + Rand_Num.Next(1, 15).ToString(); dr[2] = 1.23 * Rand_Num.Next(1, 15); dt.Rows.Add(dr); } // To persist the data source between posts to the server, // store it in session state. Session["Source"] = dt; 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 Sort_Grid(Object sender, DataGridSortCommandEventArgs e) { // Retrieve the data source from session state. DataTable dt = (DataTable)Session["Source"]; // Create a DataView from the DataTable. DataView dv = new DataView(dt); // The DataView provides an easy way to sort. Simply set the // Sort property with the name of the field to sort by. dv.Sort = e.SortExpression; // Re-bind the data source and specify that it should be sorted // by the field specified in the SortExpression property. ItemsGrid.DataSource = dv; ItemsGrid.DataBind(); } </script> <body> <form runat=server> <h3>DataGrid SortExpression Example</h3> <b>Product List</b> <asp:DataGrid id="ItemsGrid" BorderColor="black" BorderWidth="1" CellPadding="3" OnSortCommand="Sort_Grid" AutoGenerateColumns="False" AllowSorting="True" runat="server"> <HeaderStyle BackColor="#00aaaa"> </HeaderStyle> <Columns> <asp:BoundColumn DataField="IntegerValue" SortExpression="IntegerValue" HeaderText="Item"/> <asp:BoundColumn DataField="StringValue" SortExpression="StringValue" HeaderText="Description"/> <asp:BoundColumn DataField="CurrencyValue" HeaderText="Price" SortExpression="CurrencyValue" DataFormatString="{0:c}"> <ItemStyle HorizontalAlign="Right"> </ItemStyle> </asp:BoundColumn> </Columns> </asp:DataGrid> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からDataGridColumn.SortExpression プロパティを検索する場合は、下記のリンクをクリックしてください。

- DataGridColumn.SortExpression プロパティのページへのリンク