DataList Web--OnItemCommand 事件

    OnItemCommand 当在ItemTemplate 中所宣告的Button 或LinkButton 控件触发事件时,如果该控件的CommandName 属性内容不是Edit、Cancel、Delete 或Update 时,便触发本事件。其宣告语法为:

Sub OnItemCommand(Sender As Object, e As DataListCommandEventArgs)
...
End Sub

其中参数e 有2 个属性,如下表所示:
DataList
    要使用本事件前,首先必须在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>

DataList

    上述范例我们定义了ItemTemplate 以及SelectedItemTemplate 这两个样版,并指定DataListWeb 控件的OnItemCommand 属性为dlA_ICMD,表示当Template 中的控件引发事件时,只要引发事件的控件其CommandName 属性值不是Edit、Cancel、Delete 或Update 时,才会触发本事件。不过我们在Template 中的LinkButton 控件并没有指定其CommandName 属性,符合触发OnItemCommand 事件的条件;所以这个范例在触发事件时会执行dlA_ICMD 事件程序。由于DataList 会引发事件,所以DataList 控件必需被放置于<Form> 标注之中。当事件触发时我们就可以透过e.CommandSource 来取得引发事件的控件之参考,并判断其Id 属性。若其Id属性为lbShow,则将DataList Web 控件的SelectedIndex 属性指定为e.Item.ItemIndex,e.Item.ItemIndex 表示被选到项目的Index 值,所以该笔记录就会以SelectedItemTemplate 来显示详细资料;若Id 属性为lbClose,则将DataList Web 控件的SelectedIndex 设为-1,表示没有任何选项被选择。另外DataList 设定SelectedIndex 属性完毕后必须要再呼叫DataBind 方法,让DataList Web 控件重新再以新的设定来显示数据源中的数据。

转载于:https://www.cnblogs.com/yzxchoice/archive/2006/08/17/479739.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值