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


    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("CH08MyWeb.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("CH08MyWeb.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 即可。
 
 
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息

   栏目导行
  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
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统