首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请教datalist有关问题

2012-01-26 
请问datalist问题protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e){if (

请问datalist问题
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
  {
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  {
  HyperLink hk1 = (HyperLink)e.Item.FindControl("HyperLink1");
  hk1.Attributes.Add("onclick", "tshow('" + hk1.NavigateUrl.ToString() + "')");
  }
  }

请问
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
这句话什么意思
为什么不加
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

就会报对象没实例的错误 ...

[解决办法]
在DataList中,有:
ItemTemplate
AlternateItemTemplate
HeaderTemplate
FooterTemplate
SeperatorTemplate
SeletedTemplate
等等的模板,如果不加
if (e.Item.ItemType == ListItemType.Item ¦ ¦ e.Item.ItemType == ListItemType.AlternatingItem) 
那么会在HeaderTemplate也会去搜索HyperLink1这个控件(HyperLink hk1 = (HyperLink)e.Item.FindControl("HyperLink1"); ),而在HeaderTemplate中根本不存在这个控件,所有hk1为null,所以会报错

[解决办法]
表明如果DataListItem是ItemTemplate或者AlternatingItem,那么就在其中查找有关控件

热点排行