Я использую RadGrid, для которого я хочу разрешить фильтрацию. Я разрешаю фильтрацию для каждого отдельного столбца, но я добавил кнопку, которую я намерен запрограммировать, чтобы ПРИМЕНИТЬ ВСЕ ФИЛЬТРЫ.
Однако после применения фильтра я теряю значения фильтра в полях фильтра, а затем снова сам перепривязываюсь, и RadGrid сбрасывается. Все это происходит, когда я щелкаю фильтр Apply, который я создал в шаблоне элемента команды.
вот код, который я использую.
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "FilterRadGrid" || e.CommandName == "Filter")
{
string expression = "";
GridFilteringItem item = RadGrid1.MasterTableView.GetItems(GridItemType.FilteringItem)[0] as GridFilteringItem;
string col1 = (item["col1 "].Controls[0] as TextBox).Text;
string col2 = (item["col2"].Controls[0] as TextBox).Text;
string col3= (item["col3"].Controls[0] as TextBox).Text;
if (col1!= "")
expression += "([col1] LIKE \'%" + col1+ "%\')";
if (col2!= "")
{
if (expression != "")
expression += " AND ";
expression += "([col2] LIKE \'%" + col2+ "%\')";
}
if (col3!= "")
{
if (expression != "")
expression += " AND ";
expression += "([col3] LIKE \'%" + col3+ "%\')";
}
RadGrid1.MasterTableView.FilterExpression = expression;
RadGrid1.MasterTableView.Rebind();
}
}
Он делает все, что должен, за исключением того, что фильтр очищает поля фильтра, и Сетка снова связывается по какой-то странной причине, и Сетка больше не фильтруется.
Как я могу держать значение поля фильтра (col1, col2, col3) ??
Заранее спасибо за любую помощь по этому вопросу.