[C#] ListView ItemDatabound?

yellowspam

Erfahrenes Mitglied
Hi@all:

Ich arbeite grade an ner ListView.

Um die ListView zu füllen benutze ich folgenden Code im HTML:
HTML:
<%# DataBinder.Eval(Container.DataItem, "Title") %>

Nun möchte ich die ListView aber über ein Event im Codebehind füllen, weil es laut meinem Kollegen sauberer ist.

Habe nun folgenden Code:

C#:
void lstvw_articles_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            
            e.Item.
            System.Web.UI.WebControls.LinkButton catLink = (LinkButton)e.Item.FindControl("lnk_Category");
            catLink.Text = ""; // category name
            catLink.PostBackUrl = ""; // the url with the id
        }

Laut meinem kollegen gibt es eine Möglichkeit mit e.Item.DataItem, nur ein bestimmtes Control auszuwählen und dessen Wert zu änder,etc...

Ich möchte nämlich den Text meines Linkbuttons anhand der CategoryId ändern.
Dazu brauche ich aber dieses DataItem, welches aber anscheinend für die ListView nicht existiert.
Kennt jemand eine möglichkeit wie das bei ner ListView funktioniert?

Lg
Markus
 
Hat sich erledigt, ich konnte es selbst lösen ^^.

Man kann bei der ListView nicht mittels folgendem Code auf die Daten zugreifen:

C#:
void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem) {
        DataRowView drv = (DataRowView)e.Item.DataItem;
    }
}

Sondern muss folgenden Code verwenden:

C#:
void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem) {
        ListViewDataItem currentItem = (ListViewDataItem)e.Item;
        DataRowView drv = (DataRowView)currentItem.DataItem;
    }
}
 

Neue Beiträge

Zurück