首先查看一下ItemDataBound事件本身
Protected Sub DataList_ItemDataBound(ByVal sender As Object ByVal e As SystemWebUIWebControlsDataListItemEventArgs) Handles DataListItemDataBound
这个事件在数据库中的一行数据绑定到服务器控件时触发与ImageButton控件的Click事件一样DataList控件的ItemDataBound事件在第二个参数中向事件过程提供了额外的信息这包括关于即将绑定行的信息以及一个名为DataItem的属性而该属性本身又包含了三个属性
lDataItem: 从数据库中取回的实际数据条目
lItemindex: 即将被绑定的数据行索引号从开始每行数据递增
lItemType: 数据项在DataList中的类型可能是如下值中的某一个AlternatingItem EditItemFooterHeaderItemPagerSelectedltem或Separator
ItemType属性用于判断正在处理的数据行的类型例如如果将数据绑定到标题行
那么ItemType属性的值就是Header对于这个示例中的实际数据行ItemType属性的值可能是Item或AlternatingItem(两个值交替出现)因此下面显示的代码只是简单地查看ItemType的值以便只处理感兴趣的数据行
If eItemItemType = ListItemTypeItem Or _
eItemItemType = ListItemTypeAlternatingItem Then
接下来可以通过ItemType访问绑定到image控件的具体数据因此就可以查看是否有图片的数据首先提取实际的数据行不用考虑这段代码的具体细节数据和数据转换在接下来的几章中讨论重要的是记住eItemDataItein是从数据库中取回的实际数据行并检查PictureUrl列是否为空
row = DirectCast(eItemDataItem DataRowView)
If row(PictureURL)ToString()Trim() = Then
这个示例中的有些内容没有详细地解释因为它们将在本书后面的章节中讨论数据绑定和数据库将在第章讨论数据转换(使用DirectCast)和FindControl的使用将在第章讨论现在不需要知道它们的工作原理但重要的是知道可以完成哪些处理在这个示例中您看到了一个事件在数据库中的数据绑定到服务器控件时触发这个事件提供了服务器控件中底层数据和数据行的信息因此可以获得很多信息
[] [] [] []