ASP.Net Gridview - Как заставить SortExpression использовать значение NullDisplayText - PullRequest
0 голосов
/ 14 ноября 2009

Недавно я обнаружил небольшое удобное свойство NullDisplayText для BoundColumns в элементе управления GridView. Это прекрасно работает для обработки значений NULL в моем наборе записей - я могу отобразить заполнитель «System», например, если в поле моего имени пользователя указано NULL.

Однако для SortExpression я могу только указать имя столбца, насколько я знаю. Поэтому, когда я сортирую по этому столбцу, он все равно сортируется с использованием NULL в качестве значения для сортировки вместо моего пользовательского значения, в результате чего эти элементы отображаются первыми в списке. Поэтому мои результаты выглядят так, когда я сортирую:

System
System
Adams
Simpson

Любая идея, как я могу настроить поведение SortExpression для использования моего собственного значения NullDisplayText вместо NULL по умолчанию? Это то, что мне просто нужно обработать в моем SQL?

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Я думаю, что это нарушает все виды правил, потому что это помещает sql в уровень представления, но я должен признаться, что использовал выражение case в выражении сортировки до:

SortExpression="CASE WHEN ContactLoginID IS NULL THEN 0 ELSE 1 END"

Вы можете попробовать

SortExpression="ISNULL(Name, 'System')"

Но, возможно, вам действительно следует сделать это в SQL, вызываемом из уровня доступа к данным, как вы предложили в своем вопросе.

0 голосов
/ 14 ноября 2009

Вы можете проверить значение строки в событии, связанном со строкой GridView, и установить его как «Система». Установите выражение сортировки в качестве имени столбца.

Не эксперт, но это своего рода обходной путь. Не знаю, как настроить выражение сортировки.

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