要開始我正在使用MultiView控件來引導用戶搜索。 MultiView中的第一頁只是一個搜索框,其中包含一個用於執行搜索的按鈕。ASP.NET GridView.DataBind不刷新GridView
第二頁有GridView,但我想保留搜索框和按鈕供用戶再次搜索,如果他們沒有找到他們正在尋找的用戶。
當您從第1頁進行搜索並移至第2頁時,GridView將顯示正確的結果。但是當它在GridView和搜索的第二頁上時,GridView不會更新。以下是我正在使用的代碼。
//GridView = SearchResults
//SqlDataSource = AddPlayerDataSource
//MultiView = PlayerSearchView
protected void PlayerSearch_Click(object sender, ImageClickEventArgs e)
{
string userId = User.Identity.Name.ToString();
if (SearchText.Text != "" && !userId.Equals(""))
{
GridView SearchResults = (GridView)PlayerSearchView.FindControl("SearchResults");
string SqlSelect = "SELECT [id], [username] FROM [users] WHERE [username] LIKE '%" + SearchText.Text + "%'";
AddPlayerDataSource.SelectCommand = SqlSelect;
SearchResults.DataBind();
if (PlayerSearchView.ActiveViewIndex != 1)
PlayerSearchView.ActiveViewIndex = 1;
}
}
這是一個奇怪的行爲,我建議你嘗試一下存儲過程。 – 2010-02-13 02:24:04
@nmiranda,無論是使用存儲過程還是直接使用SQL都沒有什麼不同。這是沒有發生的ASP.NET數據綁定。 – Eilon 2010-02-13 02:43:28
@Eilon,對不起我的英語,我的意思是它發生在我身上,在我Google搜索後,我發現許多人有同樣的問題,他們固定使用存儲過程,我也是這樣。這就是爲什麼我建議使用存儲過程。 – 2010-02-13 15:35:41