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)就会报对象没实例的错误 ...

解决方案 »

  1.   

    在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,所以会报错
      

  2.   

    那ListItemType.Item 和 ListItemType.AlternatingItem 是什么意思呢???
      

  3.   

    表明如果DataListItem是ItemTemplate或者AlternatingItem,那么就在其中查找有关控件