In DataList ItemdataBound event, how to access by column name instead of by ItemArray index

13.6k views Asked by At

In the following code, strUsername is always returning as an empty string "" (and so are other columns).

However, if I use ItemArray and access it by passing the column index, it works fine. How to access by column name instead of index?

protected void dlst_ItemDataBound(object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        if (e.Item.DataItem != null)
        {
            string strUsername = DataBinder.Eval(e.Item.DataItem, "Username").ToString(); -----> this returns as an empty string
        }
    }
}
1

There are 1 answers

0
Dan On

The answer is here: ItemDataBound 'e.item.dataitem("key")' with ListView Control

Also, DataBinder.Eval is not usable in ItemDataBound.