﻿# 如何得知 LinqDataSource 沒有選取到任何資料

在 LinqDataSource 的 Selected 事件可以抓到透過 LINQ to SQL 查詢到的資料集，如何你想在判斷沒有選取到任何資料時進行一些動作的話，可以在這個事件進行操作。

例如說你在 Detail 頁面想判斷如果沒有任何資料時，就直接轉向到另一個網頁，可以用以下程式來寫。

```
protected void ldsNews_Selected(object sender, LinqDataSourceStatusEventArgs e)
{
    // 必須先將 e.Result 轉型(Casting)成你在 LinqDataSource 定義的 TableName 集合物件(List)
    System.Collections.Generic.List<News> o = e.Result as System.Collections.Generic.List<News>;
    
    if (o.Count == 0)
    {
        Response.Redirect("NewsList.aspx", true);
    }
}
```

以下是 LinqDataSource 的定義：

```
<asp:LinqDataSource ID="ldsNews" runat="server" ContextTypeName="MyDataContext"
    TableName="News" Where="ID == Guid(@NewsID) && isVisible" OnSelected="ldsNews_Selected">
    <WhereParameters>
        <asp:QueryStringParameter Name="NewsID" QueryStringField="NewsID" Type="Object" />
    </WhereParameters>
</asp:LinqDataSource>
```
