GridView с включенной подкачкой страниц не выполняет фильтрацию на основе входных данных других элементов управления (DropDownList, TextBox) - PullRequest
0 голосов
/ 24 октября 2010

Может кто-нибудь, пожалуйста, помогите мне. Я динамически создал элементы управления на своей странице, которая состоит из GridView, DropDownList, TextBox и Button.

Я успешно извлек данные в элемент управления GridView, в котором затем включен атрибут подкачки. Сейчас я пытаюсь отфильтровать данные в соответствии с вводом, заданным пользователем через DropDownList и TextBox, запускаемые событием нажатия кнопки. Тем не менее, это не работает.

У меня есть следующий код:

В CreateChildControls:

Controls.Add(_searchTitle);
Controls.Add(_searchDDL);
Controls.Add(_searchTextBox);
Controls.Add(_searchBtn);
Controls.Add(new LiteralControl("<br /><br />"));

Controls.Add(_title);
Controls.Add(new LiteralControl("<br /><br />"));

SelectEmployees(_searchDDL, _searchTextBox, _grid, _empObj, _dt, _strConn);
EmployeesGrid(_grid, _IDColumn, _hyperlinkedColumn, _column, _title);
Controls.Add(_grid);
DesignGrid(_grid);

if(!Page.IsPostBack)
{
   SearchArea(_searchTitle, _searchDDL, _searchTextBox, _searchBtn);
}

Метод SelectEmployees отвечает за запрос данных. EmployeesGrid отображает запрос только в элемент управления GridView. DesignGrid - это метод, который определяет стиль для сетки. SearchArea определяет стиль для элементов управления поиском.

Следующий код вызывается при нажатии кнопки. Тем не менее, он ничего не делает:

private void FilterEmployees(DropDownList searchDDL, TextBox searchTextBox, GridView grid, DataTable dt)
{
   string col = "";

   if ((searchDDL.SelectedValue.Equals("First Name")) && (!searchTextBox.Text.Equals("")))
   {
      col = "FirstName = " + searchTextBox.Text;
   }
   else if ((searchDDL.SelectedValue.Equals("Last Name")) && (!searchTextBox.Text.Equals("")))
   {
      col = "LastName" + searchTextBox.Text;
   }
   else if ((searchDDL.SelectedValue.Equals("Department")) && (!searchTextBox.Text.Equals("")))
   {
      col = "Department" + searchTextBox.Text;
   }
   else if ((searchDDL.SelectedValue.Equals("ID Number")) && (!searchTextBox.Text.Equals("")))
   {
      col = "IDNumber" + searchTextBox.Text;
   }
   else
   {

   }

   DataView view = new DataView(dt);
   view.RowFilter = col;
   grid.DataSource = view;

   DesignGrid(grid);


}

Пожалуйста, помогите. Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 января 2011

Вы уверены, что повторно добавляете свои элементы управления при обратной передаче с правильными выбранными значениями? (вам нужно добавить свои элементы управления в сеанс и загружать их каждый раз при обратной передаче)

Если вы это делаете, можете ли вы показать нам, где вы связываете событие onclick со своей кнопкой.

0 голосов
/ 25 октября 2010

Извините. Я мог бы быть очень глупым здесь. Может быть, потому что нет вызова метода grid.DataBind ()?

Я только что попробовал очень похожую программу, и я смог фильтровать, как вы ожидаете.

-Прасанна К Рао

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...