Verknüpfung für (d.e.Item.ItemType==ListItemType.Item | e.Item.ItemType==ListItemType.AlternatingItem)

Bei Verwendung eines DataGrid in ASP.Net gibt es wirklich keine Verknüpfungsmethode für

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

Grundsätzlich ist "Element kein Element, kein Header, Fußzeile, Trennzeichen".

Ich habe keine gefunden, aber ich dachte, ich würde es bis StackOverflow setzen, um zu sehen, ob ich eine vermisse.

Antwort auf "Verknüpfung für (d.e.Item.ItemType==ListItemType.Item | e.Item.ItemType==ListItemType.AlternatingItem) " 4 von antworten

Kein kurzer Schnitt, sondern kapselt dies in eine Funktion ein, und Ihr Code ist viel lesbarer.

wäre ein praktischer Ort, um eine Erweiterungsmethode methinks zu machen . . .

Sie können Ihre eigene Erweiterungsmethode dafür erstellen:

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;
    }
}

Dann können Sie es wie folgt verwenden:

e.Item.IsItem();

Hier ist das gleiche für die GridView:

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

Sagi added an fügte ein answer to one one zu einem my questions. s hinzu.

Sie können ersetzen:

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

mit

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

Seine Antwort, nicht meine. ich habe es nicht getestet. Ich weiß nicht, ob es ist:

  • gültig
  • dokumentiert
  • unterstützt
  • unterliegt Änderungen in zukünftigen Versionen von .NET Framework

Es kann sehr gut eine Situation, wo das DataItem zugewiesen ist, aber es ist kein gültiges Element. Ich überlasse es anderen, zu testen, nach oben / unten Abstimmung, und kommentieren.