动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   .Net → 阅读文章

 DataList Web--OnItemCommand 事件

作者来源: 
阅读 数 592 人次 , 2006-3-29 4:30:00 


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>



  上述范例我们定义了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 控件重新再以新的设定来显示数据源中的数据。
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:数据的编辑
· 下一篇:DataList Web 控件
· 十二、脚本元素、指令和预定义变量
· .Net中将图片数据保存到XML文档
· 用ImessageFilter接口实现截获键盘消息
· ASP.NET可交互式位图窗体设计(6)
· 使用者接口的可视化


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077