`

asp.net中显示DataGrid控件列序号的几种方法

阅读更多

<!----><st1:chsdate isrocdate="False" month="9" islunardate="False" day="10" w:st="on" year="2004"></st1:chsdate><!----><o:p></o:p> 

aps.net中多数据绑定的控件很多,论功能来说,应该属DataGrid最为齐全,但它没有提供现成的显示记录序号的功能,不过我们可以通过它所带的一些参数来间接得到序号,下面来看看怎样得到和显示序号值计算方式如下:<o:p></o:p>

(1)在后台<o:p></o:p>

DataGrid.CurrentPageIndex * DataGrid.PageSize + e.Item.ItemIndex + 1<o:p></o:p>

(2)在前台<o:p></o:p>

DataGrid1.CurrentPageIndex * DataGrid1.PageSize + Container.ItemIndex + 1<o:p></o:p>

说明:<o:p></o:p>

e表示System.Web.UI.WebControls.DataGridItemEventArgs参数类的实例;<o:p></o:p>

DataGrid1这里表示前台的一个实例;<o:p></o:p>

DataGrid.CurrentPageIndex:获取或设置当前显示页的索引;<o:p></o:p>

DataGrid.PageSize :获取或设置要在 DataGrid 控件的单页上显示的项数。<o:p></o:p>

<o:p> </o:p>

下面我使用了4种方法来在前台显示序号,不过都是围绕上面的计算式展开。<o:p></o:p>

(1)         使用DataGridItemCreated设置值,而前台的单元格可以是绑定列或者模板列(包括空模板)<o:p></o:p>

(2)         使用DataGridItemDataBound设置值,而前台的单元格可以是绑定列或者模板列(包括空模板)<o:p></o:p>

(3)         在前台直接绑定计算表达式;<o:p></o:p>

(4)         在后台类中编写方法计算表达式由前台页面类继承调用。<o:p></o:p>

备注:在数据库中获取数据时设置额外的序号列这里不做讨论,我认为这是最糟糕的实现方法。<o:p></o:p>

下面以获取Northwind数据库的Customers表的数据为列,显示如下:<o:p></o:p>

序号1<o:p></o:p>

序号2<o:p></o:p>

序号3<o:p></o:p>

序号4<o:p></o:p>

序号5<o:p></o:p>

CustomerID<o:p></o:p>

51<o:p></o:p>

51<o:p></o:p>

51 <o:p></o:p>

51 <o:p></o:p>

51 <o:p></o:p>

LONEP<o:p></o:p>

52<o:p></o:p>

52<o:p></o:p>

52 <o:p></o:p>

52 <o:p></o:p>

52 <o:p></o:p>

MAGAA<o:p></o:p>

53<o:p></o:p>

53<o:p></o:p>

53 <o:p></o:p>

53 <o:p></o:p>

53 <o:p></o:p>

MAISD<o:p></o:p>

54<o:p></o:p>

54<o:p></o:p>

54 <o:p></o:p>

54 <o:p></o:p>

54 <o:p></o:p>

MEREP<o:p></o:p>

55<o:p></o:p>

55<o:p></o:p>

55 <o:p></o:p>

55 <o:p></o:p>

55 <o:p></o:p>

MORGK<o:p></o:p>

56<o:p></o:p>

56<o:p></o:p>

56 <o:p></o:p>

56 <o:p></o:p>

56 <o:p></o:p>

NORTS<o:p></o:p>

57<o:p></o:p>

57<o:p></o:p>

57 <o:p></o:p>

57 <o:p></o:p>

57 <o:p></o:p>

OCEAN<o:p></o:p>

58<o:p></o:p>

58<o:p></o:p>

58 <o:p></o:p>

58 <o:p></o:p>

58 <o:p></o:p>

OLDWO<o:p></o:p>

59<o:p></o:p>

59<o:p></o:p>

59 <o:p></o:p>

59 <o:p></o:p>

59 <o:p></o:p>

OTTIK<o:p></o:p>

60<o:p></o:p>

60<o:p></o:p>

60 <o:p></o:p>

60 <o:p></o:p>

60 <o:p></o:p>

PARIS<o:p></o:p>

1 2 3 4 5 6 7 8 9 10<o:p></o:p>

<o:p></o:p>

<o:p> </o:p>

下面是WebFormPaging.aspx文件代码,<o:p></o:p>

<%@ Page language="c#" Codebehind="WebFormPaging.aspx.cs" AutoEventWireup="false" Inherits="AspnetPaging.WebForm1" %><o:p></o:p>

<!DOCTYPE HTML PUBLIC "-//W<st1:chmetcnv tcsc="0" hasspace="False" sourcevalue="3" numbertype="1" negative="False" unitname="C" w:st="on">3C</st1:chmetcnv>//DTD HTML 4.0 Transitional//EN" ><o:p></o:p>

<HTML><o:p></o:p>

         <HEAD><o:p></o:p>

                   <title>WebForm1</title><o:p></o:p>

                   <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"><o:p></o:p>

                   <meta content="C#" name="CODE_LANGUAGE"><o:p></o:p>

                   <meta content="JavaScript" name="vs_defaultClientScript"><o:p></o:p>

                   <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"><o:p></o:p>

         </HEAD><o:p></o:p>

         <body><o:p></o:p>

                   <form id="Form1" method="post" runat="server"><o:p></o:p>

                            <TABLE id="Table1" cellSpacing="1" cellPadding="1" width="400" align="center" border="1"><o:p></o:p>

                                     <TR><o:p></o:p>

                                               <TD><asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" Width="100%" AllowPaging="True"><o:p></o:p>

                                                                 <Columns><o:p></o:p>

                                                                           <asp:BoundColumn HeaderText="序号1"></asp:BoundColumn><o:p></o:p>

                                                                           <asp:TemplateColumn HeaderText="序号2"></asp:TemplateColumn><o:p></o:p>

                                                                           <asp:TemplateColumn HeaderText="序号3"><o:p></o:p>

                                                                                    <ItemTemplate><o:p></o:p>

                                                                                             <asp:Label ID="itemIndex" runat="server"></asp:Label><o:p></o:p>

                                                                                    </ItemTemplate><o:p></o:p>

                                                                           </asp:TemplateColumn><o:p></o:p>

                                                                           <asp:TemplateColumn HeaderText="序号4"><o:p></o:p>

                                                                                    <ItemTemplate><o:p></o:p>

                                                                                             <%# (DataGrid1.CurrentPageIndex * DataGrid1.PageSize + Container.ItemIndex + 1) %><o:p></o:p>

                                                                                    </ItemTemplate><o:p></o:p>

                                                                           </asp:TemplateColumn><o:p></o:p>

                                                                           <asp:TemplateColumn HeaderText="序号5"><o:p></o:p>

                                                                                    <ItemTemplate><o:p></o:p>

                                                                                             <%# GetRecordIndex( Container.ItemIndex ) %><o:p></o:p>

                                                                                    </ItemTemplate><o:p></o:p>

                                                                           </asp:TemplateColumn><o:p></o:p>

                                                                           <asp:BoundColumn DataField="CustomerID" HeaderText="CustomerID"></asp:BoundColumn><o:p></o:p>

                                                                 </Columns><o:p></o:p>

                                                                 <PagerStyle Mode="NumericPages"></PagerStyle><o:p></o:p>

                                                        </asp:datagrid></TD><o:p></o:p>

                                     </TR><o:p></o:p>

                                     <TR><o:p></o:p>

                                               <TD></TD><o:p></o:p>

                                     </TR><o:p></o:p>

                                     <TR><o:p></o:p>

                                               <TD></TD><o:p></o:p>

                                     </TR><o:p></o:p>

                            </TABLE><o:p></o:p>

                   </form><o:p></o:p>

         </body><o:p></o:p>

</HTML><o:p></o:p>

<o:p> </o:p>

后台WebFormPaging.aspx.cs代码如下:<o:p></o:p>

using System;<o:p></o:p>

using System.Collections;<o:p></o:p>

using System.ComponentModel;<o:p></o:p>

using System.Data;<o:p></o:p>

using System.Drawing;<o:p></o:p>

using System.Web;<o:p></o:p>

using System.Web.SessionState;<o:p></o:p>

using System.Web.UI;<o:p></o:p>

using System.Web.UI.WebControls;<o:p></o:p>

using System.Web.UI.HtmlControls;<o:p></

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics