请问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,那么就在其中查找有关控件