共用方式為


排序結果 (EntityDataSource)

更新:2007 年 11 月

您可以使用 OrderBy 屬性,排序 EntityDataSource 控制項中的結果。EntityDataSource 控制項的 OrderBy 屬性,為表示 Entity SQL 查詢中 ORDER BY 陳述式的字串。這個字串不會經過任何修改,且會傳遞給做為 EntityDataSource 控制項資料來源的 ObjectQuery<T>。指定給 OrderBy 屬性的字串使用的格式,與傳遞給 ObjectQuery<T>OrderBy 方法的字串相同。如需 ORDER BY 子句排序查詢結果的使用範例,請參閱 HOW TO:排序資料 (Entity Framework)

傳遞參數

ObjectQuery<T> 類別的 OrderBy 方法類似,您可以將參數傳遞給 OrderBy 屬性中的 ORDER BY 子句。您必須定義 EntityDataSource 控制項的 OrderByParameters 屬性,才能夠指定查詢中 ORDER BY 子句的 ParameterCollectionOrderByParameters 屬性會使用具名引數,參考 OrderBy 屬性中指派的參數。

如果沒有定義 OrderByParameters 屬性,則不會產生參數替代。ORDER BY 子句中所有參數名稱,如果前置字元符號為 "@",在 ParameterCollection 中都必須有一個對應的名稱。ParameterCollection 中的參數不允許為 Null 的值。

自動產生 ORDER BY 子句

您可以將 EntityDataSource 控制項的 AutoGenerateOrderByClause 屬性設為 true.,自動產生 ORDER BY 子句。接著,EntityDataSource 控制項會從指派給 OrderByParameters 屬性的 ParameterCollection 中,利用參數自動產生 ORDER BY 子句。這樣便不需要將 ORDER BY 子句明確指派給 OrderBy 屬性。利用 OrderByParameters 屬性自動產生 ORDER BY 子句時,必須確認集合中參數的 Name 屬性會識別查詢傳回的項目單一屬性。

範例

下列範例會自動產生 ORDER BY 子句,並且使用 orderByDropDownList 的值設定參數值。

<asp:EntityDataSource ID="SalesOrderHeader"  
    ConnectionString="name=AdventureWorksEntities"
    DefaultContainerName="AdventureWorksEntities" EnableDelete="True" 
    EnableInsert="True" EnableUpdate="True" EntitySetName="SalesOrderHeader" 
    Where="it.OnlineOrderFlag = true" AutoGenerateOrderByClause="True">
    <OrderByParameters>
        <asp:ControlParameter Name="OrderByParameter" 
            ControlID="orderByDropDownList" Type="String" />
    </OrderByParameters>
</asp:EntityDataSource>

請參閱

概念

設定 EntityDataSource 控制項

篩選資料 (EntityDataSource)

EntityDataSource 設計工具

設定資料來源精靈 (EntityDataSource 控制項)

自訂命令文字 (EntityDataSource)

其他資源

以物件形式查詢資料 (Entity Framework)