LinqDataSource.Select 屬性

定義

取得或設定屬性以及擷取之資料中包含的計算值。

public:
 property System::String ^ Select { System::String ^ get(); void set(System::String ^ value); };
public string Select { get; set; }
member this.Select : string with get, set
Public Property Select As String

屬性值

用於建立 Select 子句的字串。

範例

下列範例示範如何將 屬性設定 Select 為數據物件中屬性的子集。

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

下列範例示範如何擷取屬性中已用來分組資料的值,以及擷取群組記錄的平均值。 Key關鍵字包含已用於分組資料的屬性。 在此範例中, Key 將會包含 來自 屬性的 ProductCategory 共用值。

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

備註

如果您未設定 Select 屬性, LinqDataSource 控制項會從) 資料物件擷取 (資料行的所有屬性。 Select您可以使用 屬性從 物件擷取屬性的子集,或在擷取資料時計算新值。

您可以將 屬性設定 Select 為要包含在傳回資料中的屬性名稱,以指定要擷取的屬性。

如果您從資料物件擷取屬性的子集, LinqDataSource 控制項會動態建立只包含您在 屬性中指定的屬性的 Select 類別。 如果您計算不是資料物件中屬性的屬性,也會動態建立類別。 在這些情況下,從查詢傳回的物件不是 屬性中指定的 TableName 類別實例。 相反地,您必須使用 new 屬性中的 Select 方法,以指出從查詢傳回新的類別。 例如,若要只 FirstName 從包含超過這些屬性的物件傳回 和 LastName 屬性,請將 Select 屬性設定為 new(FirstName, LastName) 。 控制項 LinqDataSource 會動態建立您在 方法中指定的 new 新類別。

您可以使用 As 關鍵字將別名指派給選取的值。 如果您指派別名,則必須在 new 方法中包含別名屬性。 系結至控制項結果 LinqDataSource 的任何資料繫結控制項都必須依別名參考 屬性。 例如,如果您將 Select 屬性設定為 new(Region As SalesRegion, Revenue / 1000 As RevenueThousands) ,則資料繫結控制項可以存取兩個屬性和 SalesRegionRevenueThousands

您會根據下表所列的條件, Selectnew 屬性中使用 函式。

選取 使用新的 範例
單一屬性。 new 不需要。 Select="Category"
多個屬性。 new 需要。 Select="new(Category, Name)"
具有別名的單一或多個屬性。 new 需要。 Select="new(Category As CategoryGroup)"

如果您想要啟用自動資料修改,但不想顯示資料物件中的所有屬性,請勿設定 Select 屬性。 而是透過資料繫結控制項來管理顯示。 當您使用 DetailsView 控制項或 GridView 控制項時,也必須將 AutoGenerateColumns 或 屬性設定 AutoGenerateRowsfalse 。 資料繫結控制項中未顯示的任何值都會儲存在檢視狀態中。 執行資料更新時,它們不會變更傳遞至資料來源。

當您將查詢中的資料分組時,可以在 屬性中包含 Select 匯總方法。 您可以使用下列匯總方法:

  • Count()

  • Average()

  • Sum()

  • Max()

  • Min()

  • Where(condition)

  • Any()

  • All(condition)

如需詳細資訊,請參閱 LinqDataSource Web 服務器控制項概觀如何:使用 LinqDataSource 控制項分組和匯總資料

當您將資料分組時,您可以在 Key 屬性中包含 SelectIt ,這些屬性是動態建立的屬性。 屬性 Key 是指用來分組資料之屬性或屬性中的值。 例如,如果您依名為 Category 的屬性分組,則 Key 屬性將包含 屬性中的每個 Category 唯一值。 屬性 It 是指資料群組中的個別記錄集合。 您可以逐一查看 It 屬性,以擷取群組作業中已合併的個別記錄。 例如,如果您依名為 Category 的屬性分組,則 It 屬性會包含屬性中 Category 共用通用值的所有個別記錄。

如果您在群組資料時將 It 關鍵字包含在 屬性中 Select ,則必須將別名指派給 It 關鍵字。 如果沒有 It 別名,控制項 LinqDataSource 將會擲回例外狀況。 您可以將別名指派給 Key 關鍵字,但這並非必要專案。

適用於