У меня есть несколько ListBoxes как категории, отделы, факультеты и т.д. И у меня есть GridView заполняются из базы данных (MSSQL ) в код-сзади. Я буду использовать ListBoxes как фильтры .ASP.NET Руководство ListBox Фильтры для GridView
Например, когда я выбираю категорию из КатегорииListBox, GridView покажет только записи в этой категории. И когда я также выбираю Департамент, GridView покажет только записи в выбранной категории и отделе.
Я полагаю, что сделаю это с помощью selectedIndexChanged событие ListBoxes. Мой код aspx:
public partial class Default : System.Web.UI.Page
{
private string constr = MY_CONNECTION_STRING;
protected void Page_Load(object sender, EventArgs e)
{
FillGridView();
}
protected void FillGridView()
{
string Query = "SELECT * FROM Entry WHERE Category = '" + SelectedCategory +"' AND Department = '" + SelectedDepartment +"'";
SqlConnection conn = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand(Query, conn);
try
{
conn.Open();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
catch (Exception ex)
{
Response.Write("Hata: " + ex.Message);
}
finally
{
conn.Close();
}
}
protected void CategoriesListBox_SelectedIndexChanged(object sender, EventArgs e)
{
// Here I want to get SelectedCategory value and re-fill GridView
}
protected void DepartmentsListBox_SelectedIndexChanged(object sender, EventArgs e)
{
// Here I want to get SelectedDepartment value and re-fill GridView
}
}
Спасибо за помощь.
thx, и что я должен писать для метода FillGridView() 'в PageLoad? (показать GridView без фильтров) – samet
Если аргументы pass равны null, вы можете просто удалить условную часть SQL-запроса (часть WHERE дальше), чтобы вы могли сделать что-то вроде этого (проверьте изменение) –
Прошу прощения за у меня возникли проблемы с редактированием кода, теперь он должен работать нормально. –