在做內容頁套版的時候,如果該頁是依據 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> 即可顯示查無資料時的顯示內容了。