帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统v4.6
栏 目:
 
您的位置:首页 > 技术文档 > 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编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·帝国网站管理系统采集使用教程
·帝国网站管理系统模板制作教程
·帝国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
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统