Ярлык для (например,Item.ItemType==ListItemType.Item | e.Item.ItemType==Тип списка элементов.Альтернативный элемент)

StackOverflow https://stackoverflow.com/questions/1202237

  •  05-07-2019
  •  | 
  •  

Вопрос

При использовании DataGrid в ASP.Net действительно ли нет метода быстрого доступа для

(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) 

По сути, "элемент - это элемент, а не верхний, нижний колонтитулы, разделитель".

Мне не удалось найти ни одного, но я решил, что добавлю его в StackOverflow, чтобы посмотреть, не пропал ли он у меня.

Это было полезно?

Решение

Вы можете создать свой собственный метод расширения для этого:

using System.Web.UI.WebControls;

public static class UiControlsHelper
{
    public static bool IsItem(this DataGridItem item)
    {
        return item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem;
    }
}

Тогда вы можете использовать это так:

e.Item.IsItem();

Вот то же самое для GridView:

public static bool IsDataRow(this GridViewRow row)
{
    return row.RowType == DataControlRowType.DataRow;
}

Другие советы

Саги добавлено ответ к одному- одному мой вопросs.

Вы можете заменить:

if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType...

с

if (e.Item.DataItem != null) ...

Это его ответ, а не мой.я это еще не проверял.я не знаю, так ли это:

  • действительный
  • документированный
  • поддерживаемый
  • могут быть внесены изменения в будущих версиях .NET Framework

Вполне может возникнуть ситуация, когда DataItem назначен, но это недопустимый элемент.я оставлю это другим, чтобы они тестировали, голосовали "за" / "против" и комментировали.

Не кратчайший путь, но инкапсулируйте это в функцию, и ваш код станет намного более читабельным.

Было бы удобным местом для создания метода расширения. , .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top