Как правильно фильтровать gridview, привязанный к sqldatasource

Я пытаюсь заполнить (редактируемое) представление сетки в ASP.NET таблицей из SQL. Для этого у меня настроен SQLDataSource. Мне также нужно, чтобы этот вид сетки можно было фильтровать на основе параметров, введенных в текстовые поля. Я пробовал использовать ControlParameters для этого, и это работает, но проблема в том, что когда все текстовые поля пусты, я хочу, чтобы он отображал все результаты в представлении сетки. Что он делает, так это ничего не отображает, потому что ни одна запись не имеет параметров, равных "". Есть ли простой способ сделать это, который мне не хватает, или есть лучший способ сделать это, кроме SQLDataSource?


person novacara    schedule 21.09.2010    source источник


Ответы (1)


Думаю, у меня это сработало. Если кому-то еще интересно, вот что я должен был сделать. Сначала мне нужно было немного изменить оператор select в SQLDataSource.

SELECT * FROM [MyTable] WHERE ([ColumnName] = @Param1)

to

SELECT * FROM [MyTable] WHERE (@Param1 IS NULL OR [ColumnName] = @Param1).

Затем я устанавливаю параметр для SQLDataSource: CancelSelectOnNullParameter="False".

person novacara    schedule 21.09.2010
comment
Вы также можете использовать атрибут ConvertEmptyStringToNull в своих ControlParameters, чтобы он передал NULL в SQL, когда отдельный параметр пуст. - person PhilPursglove; 21.09.2010