Чтобы начать, я использую элемент управления 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;
}
}
Это странное поведение, я предлагаю вам попробовать хранимую процедуру. –
@nmiranda. Не используется ли хранимая процедура или прямой SQL. Это привязка данных ASP.NET, которая не происходит. – Eilon
@ Эйлон, извините, мой английский, я имел в виду, что это случилось со мной, и после того, как я погуглил, я нашел много людей с одинаковой проблемой, и они исправили использование хранимой процедуры, и я тоже. Поэтому я предложил используйте хранимую процедуру. –