高分求一个重写DataList基类的问题,谢谢大家关注
哪位大哥帮我解决下:
以前我的贴:
http://community.csdn.net/Expert/topic/5574/5574417.xml?temp=.4164392
这贴子中的
private void d_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
HyperLink h;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
h = (HyperLink)e.Item.FindControl( "h1 ");
if (h != null)
{
h.Text = ((DataRowView)e.Item.DataItem).Row[ "au_id "].ToString();
h.NavigateUrl = "Msg.aspx?id= " + h.Text;
}
}
}
现在我想把private void d_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)改成
private void d_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e,string strHtml)
即由两个参数,改成三个参数,有没办法改,都要改哪里?
谢谢
------解决方案--------------------系统定义好的事件参数改不了的了,你只能通过其它的方法来解决.除非你是引发的自已定义的事件及用的是自定义的事件参数才可以了.
------解决方案--------------------你要重新定义一个ItemDataBound事件的委托。还要重写OnItemDataBound方法。如:
public delegate void MyItemDataBoundEventHandler(object sender,DataListItemEventArgs e,string strHtml)
new public event MyItemDataBoundEventHandler ItemDataBound;
protected override OnItemDataBound(DataListItemEventArgs e)
{
if(ItemDataBound!=null)
{
ItemDataBound(this,e, "strHtml ");
}
}
------解决方案--------------------就是让OnItemDataBound引发自己定义的ItemDataBound事件,建议这里不要和系统定义的一样。我这里只是做实验,所以这样弄了!