C # Gridview - проверка, если столбец уже существует, при добавлении нового столбца не удается - PullRequest
2 голосов
/ 18 апреля 2010

У меня есть GridView с 10 столбцами.При определенных условиях я хочу добавить новый столбец с именем «Срок действия».Проблема в том, что когда пользователь снова нажимает «Поиск» (обратная передача), столбец добавляется снова.
Я проверяю перед добавлением столбца, чтобы увидеть, существует ли он уже:

BoundField dtExp = new BoundField
                            {DataField = "DateTimeExpired", HeaderText = "Expiration Date", DataFormatString = "{0:d}"};
if (!grid.Columns.Contains(dtExp)){grid.Columns.Add(dtExp);}

Но проблемадаже если столбец уже существует, «Contains» возвращает false.
Что я делаю не так?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 06 марта 2012

Вы можете привести Columns к типизированному IEnumerable <> и использовать LINQ для проверки существования столбцов:

var gridBoundColumns = Grid1.Columns.OfType<BoundField>();
if(gridBoundColumns.Any(bf => bf.DataField.Equals(searchColumn.Name)) == false)
{
    Grid1.Columns.Add(new BoundField{ ... });
}
3 голосов
/ 18 апреля 2010

Он проверяет, содержит ли сетка ваш новый столбец (чего, очевидно, не будет; вы еще не добавили его); Вы действительно хотите проверить, содержит ли он другой столбец с тем же именем. Возможно, просто переберите Columns, проверяя его с помощью DataField == "DateTimeExpired".

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