帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > 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编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·ASP.NET中为DataGrid添加合计字段
·.text urlRewrite介绍
·利用 ASP.NET 的内置功能抵御 Web
·ASP.NET Cache
·用 WebClient.UploadData 方法 上载
·ASP.NET 程序设计-序
·什么是客户端/伺服端(Client/Serve
·因特网应用程序的开发
·网页的种类
·.NET Framework-Microsoft Visual
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统