在DataGrid等控件中添加自动编号的列

datagrid|控件

一、正序
A、AllowPaging=False情况下

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

就可以实现

不过更有趣的方法是使用这个方法

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

也许有些人会觉得很奇怪为什么Items.Count会这样,而不是出来全部总合..但如果你了解绑定的过程时就容易理解.
[从上面来看就是在ItemCreated事件中进行绑定所以得到的Items.Count刚好是当前的序号]

B、AllowPaging="True"下
如果你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>

二、倒序的方法

序号
内容

4
Taye

3
BOx

2
Glass

1
StarCraft

由上面可以知道使用
this.DataGrid1.Items.Count - Container.ItemIndex + 1方法是不可能实现的,得到值而且全会为1
分页的情况下更是一样.所以一开始我们就要取得数据源的行数

.cs

private int rowscount = 0;

protected int RowsCount

{

get{ return rowscount;}

set{ this.rowscount = value; }

}

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

if(!IsPostBack)

this.BindData();

}

private void BindData()

{

SqlConnection cn = new SqlConnection("server=(local);database=NorthWind;uid=sa;pwd=");

string str=@"SELECT Employees.EmployeeID, Orders.EmployeeID

FROM Employees INNER JOIN

Orders ON Employees.EmployeeID = Orders.EmployeeID ";

SqlDataAdapter sqlda = new SqlDataAdapter(str,cn);

DataSet ds = new DataSet();

sqlda.Fill(ds);

this.RowsCount = ds.Tables[0].Rows.Count;

this.DataGrid1.DataSource = ds;

this.DataGrid1.DataBind();

}

.aspx

<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">

<Columns>

<asp:TemplateColumn>

<ItemTemplate>

<%# RowsCount - DataGrid1.CurrentPageIndex * DataGrid1.PageSize - Container.ItemIndex %>

</ItemTemplate>

</asp:TemplateColumn>

</Columns>

</asp:DataGrid>

当然如果是不是分页的情况一下更容易实现了.

时间: 2024-11-08 17:30:13

在DataGrid等控件中添加自动编号的列的相关文章

关于DataGrid等控件中的自动编号

datagrid|控件 论坛中有很多人问关于DataGrid的自动编号问题 序号内容1Taye2BOx3Glass4StarCraft一.正序A.AllowPaging=False情况下 <asp:DataGrid id="DataGrid1" runat="server">   <Columns>     <asp:TemplateColumn>      <ItemTemplate>       <%# Co

datagrid/GridView 控件中的列,添加编辑(删除,更新) 如果直接删除数据库中的记录,更新数据库的记录

问题描述 datagrid/GridView控件中的列,添加编辑(删除,更新)如果直接删除数据库中的记录,更新数据库的记录报错数据源,没有设置deletecommang对象 解决方案 解决方案二:是写在GridView1_RowDeleting事件里面???解决方案三:要不就是在模版列里面CommandName="Delete"如下<ItemTemplate><asp:LinkButtonID="LinkButton3"runat="se

ASP.NET开发系列之在用户控件中添加事件

asp.net|控件 在<在用户控件中添加属性>这一篇文章中我们演示了如何在用户控件中添加属性,接下来我们演示如何在用户控件中添加事件. 在<在用户控件中添加属性>这一篇文章中我们定义了一个用户登录的用户控件UserLogin.ascx 文件,里面包含了一个LinkButton服务器按钮控件,当用户单击该按钮时服务器端会自动生成一个回发来激发Page.Load事件.除了服务器自动产生回发来激发Page.Load事件外,我们可以给LinkButton添加一个它自己的事件,添加事件其实

手势左右 误判-WP 开发中在WebBrowser控件中添加手势出现误判的问题

问题描述 WP 开发中在WebBrowser控件中添加手势出现误判的问题 在xaml中对WebBrowser控件使用GestureListener实现左右滑动返回上一页.前进下一页.但是在加载2048网页版游戏的时候,出现手势误判,在玩2048游戏向右滑动的时候,会返回上一页,我想监听WebBrowser中是否有2048这类的滑动事件,应该怎么做呢? 我的xaml代码: <phone:WebBrowser VerticalAlignment="Top" x:Name="

VB 6.0关于在菜单控件中添加一个超级链接的问题

问题描述 VB 6.0关于在菜单控件中添加一个超级链接的问题 在VB 6.0编程系统中怎么在主菜单条控件上增加一个超级链接,点超级链接就打开公司的购买网站页面? 解决方案 可以把超链接放在coolbar的带区上,把菜单条也放入coolbar实现.

在DataGrid 表格控件中 怎么使 在鼠标拖动时, 选中其经过的单元格。

问题描述 请教一个问题,在DataGrid表格控件中怎么使在鼠标拖动时,选中其经过的单元格.我用的是WPF,看到有人说VisualTreeHelper.FindElementsInHostCoordinates方法(Point,UIElement)方法,但是WPF中并没有这种方法啊?各位大虾帮帮忙!!!! 解决方案 解决方案二:我刚好也遇到这个问题,帮忙顶一下解决方案三:在线等,求大神帮忙啊解决方案四:按着鼠标左键拖动?解决方案五:是的鼠标左键拖动选中多个值解决方案六:大侠有没有什么办法啊,我已

在C#中,在windows窗体控件中添加了个windows media player 播放器控件,怎样可以选择哪一首旧播放哪一首??

问题描述 在windows窗体中还有个listview控件显示从数据库显示的歌曲名称等信息,在listview控件中显示歌曲列表,并设置了右键快捷播放按钮,怎样可以选择一首歌就播放哪首歌?歌曲从数据库查询得到歌名等信息,添加到listview控件中,在里面显示歌曲列表.然后设置了个右键播放快捷键,选中一首个旧播放它.怎么绑定选择那首歌旧播放哪首歌.privatevoid播放ToolStripMenuItem_Click(objectsender,EventArgse){stringpath=En

向DataGrid控件中添加ComboBox控件

combobox控件|datagrid|datagrid控件   在前面看到了很多关于怎样向DataGrid中添加ComboBox控件的方法.使用的方法全部都是在VB6.0中的方法. 我还是要说说在CSND中发贴的朋友. 现在所谓的.NET编程人员,不知道是怎么了呢!只是停留在使用.NET的编程环境中.并没有真正的了解面向对象的.NET编程思想. 我现在就利用继承DataGridColumnStyle完成向DataGrid中添加ComboBox. 希望这样有助于大家了解真正的面向对象编程的思想.

DataGrid中添加自动编号

datagrid 在aspx文件中的datagrid:<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="3" Width="593px"><Columns><asp:TemplateColumn Header