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

 ButtonColumn

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


boundcolumn 最主要的功能是利用linkbutton 或pushbutton 来显示数据源中的一个字段内容,并且可以触发datagrid web 控件的事件。其使用语法如下所示:

<asp:buttoncolumn
buttontype="linkbutton | pushbutton"
commandname="命令名称"
datatextfield="datasourcefield"
datatextformatstring="formatstring"
footertext="footertext"
headerimageurl="url"
headertext="headertext"
readonly="true | false"
sortfield="datasourcefieldtosortby"
text="buttoncaption"
visible="true | false"
/>

其中除了共同基础属性以及样式对象外,常用的属性如下表所示:

下列程序代码范例以boundcolumn 来显示字段内容,并且显示使用者点选了哪一笔记录:

<%@import namespace=system.data.ado%>
<%@import namespace=system.data%>
<!--#include file="gettable.inc"-->
<html>
<form runat="server">
<asp:datagrid id="dga" allowpaging="true" pagesize="5"
onpageindexchanged="dga_pagechg" runat="server"
pagerstyle-mode="numericpages" bordercolor="#808080"
headerstyle-font-names="courier new"
headerstyle-backcolor="#d1dceb"
headerstyle-font-bold="true" headerstyle-horizontalalign="center"
autogeneratecolumns="false"
onitemcommand="dga_icmd">
<property name="columns">
<asp: buttoncolumn
headertext="姓名"
datatextfield="username"/>
<asp:boundcolumn
headertext="电话"
datafield="usertel"/>
<asp:boundcolumn
headertext="住址"
datafield="useradd"/>
</property>
</asp:datagrid>
</form>
<asp:label id="label1" runat="server"/>
<script language="vb" runat="server">
sub page_load(sender as object, e as eventargs)
if page.ispostback=false then
dim dtdatatable as datatable=gettable("ch08\myweb.mdb", "members")
dga.datasource=dtdatatable.defaultview
page.databind()
end if
label1.text="您目前没有点选任何记录."
end sub
sub dga_pagechg(sender as object, e as datagridpagechangedeventargs)
dim dtdatatable as datatable=gettable("ch08\myweb.mdb", "members")
dga.datasource=dtdatatable.defaultview
page.databind()
end sub
sub dga_icmd(sender as object, e as datagridcommandeventargs)
dim shtrow as short= e.item.itemindex+1
if shtrow<>0 then
label1.text="您点选了第" & shtrow.tostring() & _
" 个字段的数据, 这<br>笔数据在数据源中是第"
label1.text+=((dga.currentpageindex * dga.pagesize) +
shtrow).tostring & _
"笔记录."
end if
end sub
</script>
</html>


上述范例我们指定datagrid web 控件的onitemcommand 属性为dga_icmd,表示按下显示 使用者名称的buttoncolumn 时会触发dga_ccmd 事件,并且执行dga_icmd 事件程序;如下 程序代码片段所示:

sub dga_icmd(sender as object, e as datagridcommandeventargs)
dim shtrow as short= e.item.itemindex+1
if shtrow<>0 then
label1.text="您点选了第" & shtrow.tostring() & _
" 个字段的数据, 这<br>笔数据在数据源中是第"
label1.text+=((dga.currentpageindex * dga.pagesize) +
shtrow).tostring & _
"笔记录."
end if
end sub

在这个事件程序中,我们利用e.item.itemindex 属性取得使用者点选了第几个项目的index 值; 由于index 由0 开始,所以我们加上1 表示点选了第几个项目。如果没有任何项目被点选,则 e.item.itemindex 属性传回-1。由于变量shtrow 为e.item.itemindex 加1 的结果,所以我们藉 由判断变量shtrow 是否为0 来得知使用者是否有选择选项。
因为e.item.itemindex 属性传回的是使用者在datagrid web 控件上所点选的项目,并不是记录 在数据源的地址;所以我们透过计算目前的页数索引乘以每页的纪录笔数后,再加上目前所在的 字段即可得到该笔数据在数据源中的实际地址。所以使用者若点选了第六页的第四个字段,表达 式则为(5*5)+4,结果29 就是记录在数据源的实际顺序。

若要取得该笔记录在数据源中的索引值,由于index 值是由0 开始计数,所以只要再减去1 即可。
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:HyperlinkColumn
· 下一篇:BoundColumn
· SQL命令中DateTime格式参考
· For Each...In 循环结构
· 使用 ASP+ 列表绑定控件(上)
· 在DataSet中建立外键约束
· 构造.NET环境下的网页下载器 (2)


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