LinqDataSource.Select 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定屬性以及擷取之資料中包含的計算值。
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)
,則資料繫結控制項可以存取兩個屬性和 SalesRegion
RevenueThousands
。
您會根據下表所列的條件, Select 在 new
屬性中使用 函式。
選取 | 使用新的 | 範例 |
---|---|---|
單一屬性。 | new 不需要。 |
Select="Category" |
多個屬性。 | new 需要。 |
Select="new(Category, Name)" |
具有別名的單一或多個屬性。 | new 需要。 |
Select="new(Category As CategoryGroup)" |
如果您想要啟用自動資料修改,但不想顯示資料物件中的所有屬性,請勿設定 Select 屬性。 而是透過資料繫結控制項來管理顯示。 當您使用 DetailsView 控制項或 GridView 控制項時,也必須將 AutoGenerateColumns 或 屬性設定 AutoGenerateRows 為 false
。 資料繫結控制項中未顯示的任何值都會儲存在檢視狀態中。 執行資料更新時,它們不會變更傳遞至資料來源。
當您將查詢中的資料分組時,可以在 屬性中包含 Select 匯總方法。 您可以使用下列匯總方法:
Count()
Average(
列)
Sum(
列)
Max(
列)
Min(
列)
Where(
condition)
Any()
All(
condition)
如需詳細資訊,請參閱 LinqDataSource Web 服務器控制項概觀 和 如何:使用 LinqDataSource 控制項分組和匯總資料。
當您將資料分組時,您可以在 Key
屬性中包含 Select 和 It
,這些屬性是動態建立的屬性。 屬性 Key
是指用來分組資料之屬性或屬性中的值。 例如,如果您依名為 Category
的屬性分組,則 Key
屬性將包含 屬性中的每個 Category
唯一值。 屬性 It
是指資料群組中的個別記錄集合。 您可以逐一查看 It
屬性,以擷取群組作業中已合併的個別記錄。 例如,如果您依名為 Category
的屬性分組,則 It
屬性會包含屬性中 Category
共用通用值的所有個別記錄。
如果您在群組資料時將 It
關鍵字包含在 屬性中 Select ,則必須將別名指派給 It
關鍵字。 如果沒有 It
別名,控制項 LinqDataSource 將會擲回例外狀況。 您可以將別名指派給 Key
關鍵字,但這並非必要專案。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應