我想在我的.net页面上扩展列表框并添加一个onrowdatabound事件,我想知道我是否可以这样做?感谢。
答案 0 :(得分:1)
我不确定为什么在每行上执行此操作会很有价值,而不是仅仅捕获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,它不一定是,所以你也可以检查它。
这听起来像是面试问题......