OnItemCommand 當在ItemTemplate 中所宣告的Button 或LinkButton 控件觸發事件時,如果該控件的CommandName 屬性內容不是Edit、Cancel、Delete 或Update 時,便觸發本事件。其宣告語法為:
Sub OnItemCommand(Sender As Object, e As DataListCommandEventArgs)
...
End Sub
其中參數e 有2 個屬性,如下表所示:
要使用本事件前,首先必須在ItemTemplate 中宣告LinkButton 或Button Web 控件。下列范例在ItemTemplate 中宣告一個LinkButton Web 控件,當使用者按下LinkButton Web 控件后,會顯示該項目的詳細數據:
<%@Import Namespace=System.Data.ADO%>
<%@Import Namespace=System.Data%>
<!--#Include File="GetTable.inc"-->
<Html>
<Form runat="Server">
<ASP:DataList Id="dlA" OnItemCommand="dlA_ICMD" GrIdLines="both"
Runat="Server">
<Template Name="ItemTemplate">
<ASP:Image ImageUrl="ico1.gif" Runat="Server"/>
姓名: <%#Container.DataItem("UserName")%>
<ASP:LinkButton Id="lbShow" Text=">" Runat="Server"/>
</Template>
<Template Name="SelectedItemTemplate">
<ASP:Image ImageUrl="ico1.gif" Runat="Server"/>
姓名: <%#Container.DataItem("UserName")%>
<ASP:LinkButton Id="lbClose" Text="<" Runat="Server"/><br>
電話: <%#Container.DataItem("UserTel")%><br>
住址: <%#Container.DataItem("UserAdd")%><br>
電郵: <%#Container.DataItem("UserEmail")%><br>
</Template>
</ASP:DataList>
</Form>
<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object, e As EventArgs)
Dim dtDataTable As DataTable=GetTable("CH05\MyWeb.mdb", "Members")
dlA.DataSource=dtDataTable.DefaultView
Page.DataBind()
End Sub
Sub dlA_ICMD(Sender As Object, e As DataListCommandEventArgs)
If e.CommandSource.Id="lbShow" Then
dlA.SelectedIndex=e.Item.ItemIndex
ElseIf e.CommandSource.Id="lbClose"
dlA.SelectedIndex=-1
End If
dlA.DataBind()
End Sub
</SCRIPT>
</Html>
原文轉自:http://www.anti-gravitydesign.com