帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统v4.6
栏 目:
 
您的位置:首页 > 技术文档 > ASP.NET编程 >
DataList Web--OnItemCommand 事件
作者:佚名 发布时间:2005-04-02 来源:不详
 


    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("CH05MyWeb.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>



    上述范例我们定义了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 控件重新再以新的设定来显示数据源中的数据。
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·DataGrid Web 控件的基础应用  (2005-04-02)
 ·DataGridPager 样式  (2005-04-02)
 ·DataGrid Web 控件  (2005-04-02)
 ·DataGrid Web 控件的进阶应用--使  (2005-04-02)
 ·强化DataGrid Web 控件的编辑接口  (2005-04-02)
 ·Data Cache(资料快取)  (2005-04-02)
 ·ASP3.0给我们带来的新技术之一--  (2005-03-12)
 ·连接到数据及创建可重用的Data C  (2005-03-12)
 ·ASP+中执行简单的Select查询,并  (2005-03-12)
 ·制作我们自己的Ebay(拍卖系统EN)  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·帝国网站管理系统采集使用教程
·帝国网站管理系统模板制作教程
·帝国CMS模板下载
·Discuz6.0.1UC版通行证发布
·帝国网站管理系统之网站迁移教程
·帝国网站管理系统实例入门教程下载
·《帝国网站管理系统》实例入门教程
   类别最新
·ASP.NET中为DataGrid添加合计字段
·.text urlRewrite介绍
·利用 ASP.NET 的内置功能抵御 Web
·ASP.NET Cache
·用 WebClient.UploadData 方法 上载
·ASP.NET 程序设计-序
·什么是客户端/伺服端(Client/Serve
·因特网应用程序的开发
·网页的种类
·.NET Framework-Microsoft Visual
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统