﻿# 如何在 CodeBehind 得知 FormView 沒有選取到任何資料

在做內容頁套版的時候，如果該頁是依據 QueryString 的 id 參數傳入來選取的話，有時後我們會用一個 FormView + ObjectDataSource 來搭配，但如果傳入的 id 並沒有從 DataSource 選取到資料時，我們要直接轉址到其他頁時，可以用以下方法來做。

> ```csharp
> protected void Page_Load(object sender, EventArgs e)
> {
>     FormView1.DataBound += new EventHandler(FormView1_DataBound);
> }
> 
> protected void FormView1_DataBound(object sender, EventArgs e)
> {
>     if (FormView1.DataItemCount == 0)
>     {
>         Response.Redirect("index.aspx", true);
>     }
> }
> ```

會寫這篇是因為我看到有人在 Page\_Load 事件裡多寫了一次查詢去判斷資料是否存在，因為 DataSource 已經幫我們去資料庫查過一次了，不需要在 Page\_Load 之中多下一個額外的查詢。

如果你不需要在 Code Behind 執行程式的話，只要在 aspx 頁面的 FormView 控制項多寫一個 <EmptyDataTemplate> 即可顯示查無資料時的顯示內容了。
