The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

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

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

[code:c#]
    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);
        }
    }
[/code]

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

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