您的位置:首页 > 其它

给DataGrid添加自动增长的序列号

2007-04-28 10:36 357 查看
这里提供几个简单好用的方法

原理:给数据源添加一个序列

代码如下:
//获得数据源
mySelectCommand = "select * from table" ;

SqlDataAdapter myCommand = new SqlDataAdapter(mySelectCommand,myConnection);

DataTable dt = new DataTable();
myCommand.Fill(dt); //将数据库获得的结果集付给dt,以进一步操作
//给dt加序列
dt.Columns.Add("index",typeof(int));//加序列
int index;
for( index = 0; index < dt.Rows.Count; index ++)
//绑定数据源
myDataGrid.DataSource = dt.DefaultView ;
myDataGrid.DataBind();

以上从数据源的角度来解决这个问题。
其实从DataGrid本身就可以很好地解决这个问题。比起上面的方法自然好很多。

原理:
1。利用该DataGrid的Container.ItemIndex

<asp:DataGrid id="DataGrid1" runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<%# Container.ItemIndex + 1%>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>

这种方法再简单不过了,不过无法应用在分页的情况下。

2。利用DataGrid自身加载过程中.Items.Count的属性来实现

<asp:DataGrid id="DataGrid1" runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<%# this.DataGrid1.Items.Count + 1%>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>

分页情况下,代码如下:

<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<%# this.DataGrid1.CurrentPageIndex * this.DataGrid1.PageSize + Container.ItemIndex + 1%>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: