.net listbox добавить onrowdatabound событие - как? - PullRequest
1 голос
/ 18 февраля 2011

Я хотел бы расширить список на моей странице .net и добавить событие onrowdatabound, и мне интересно, смогу ли я это сделать?Спасибо.

1 Ответ

1 голос
/ 18 февраля 2011

Я не уверен, почему было бы полезно делать это для каждой строки, а не просто захватывать DataBinding и делать там, что вы хотите.Но если вы действительно хотите это сделать, просто выполните итерацию по источнику данных и вызовите событие:

public class ItemDataBoundArgs: EventArgs
{
   public object Item;
}
public class MyListBox: ListBox
{
    public event EventHandler ItemDataBound;
    protected override void OnDataBinding(EventArgs e)
    {
       base.OnDataBinding(e);
       if (ItemDataBound != null)
       {
           foreach (var item in (IEnumerable)DataSource)
           {
                var e= new ItemDataBoundArgs();
                e.Item=item;
                ItemDataBound(this,e);
            }
        }
    }
}

Конечно, для этого DataSource должен быть IEnumerable, что не обязательно, такмог бы проверить это тоже.

Звучит как вопрос для интервью ...

...