Ярлык для (например,Item.ItemType==ListItemType.Item | e.Item.ItemType==Тип списка элементов.Альтернативный элемент)
Вопрос
При использовании 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 назначен, но это недопустимый элемент.я оставлю это другим, чтобы они тестировали, голосовали "за" / "против" и комментировали.
Не кратчайший путь, но инкапсулируйте это в функцию, и ваш код станет намного более читабельным.
Было бы удобным местом для создания метода расширения. , . Р>