如何让DataGrid自动生成序号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让DataGrid自动生成序号相关的知识,希望对你有一定的参考价值。

参考技术A 在DataGrid的第一列自动生成序号,如下图:

代码实现:
前台(WebForm1.aspx):
<asp:DataGrid id="grdCustomer" style="Z-INDEX: 102; LEFT: 30px; POSITION: absolute; TOP: 152px" runat="server" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="3" Font-Size="X-Small" AutoGenerateColumns="False">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#669999">
</SelectedItemStyle>
<AlternatingItemStyle BackColor="#FFF2F2"></AlternatingItemStyle>
<ItemStyle ForeColor="#000066" BackColor="#FAFFF9"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#006699"></HeaderStyle>
<FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderText="序号">
<ItemTemplate>
<asp:label id="lable1" runat=server><%#GetCount()%></asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="CustomerID" HeaderText="客户ID"></asp:BoundColumn>
<asp:BoundColumn DataField="CompanyName" HeaderText="公司名称"></asp:BoundColumn>
<asp:BoundColumn DataField="City" HeaderText="城市"></asp:BoundColumn>
<asp:BoundColumn DataField="Address" HeaderText="地址"></asp:BoundColumn>
</Columns>
</asp:DataGrid>

后台(WebForm1.aspx.cs):
int count;
private void Page_Load(object sender, System.EventArgs e)

if(!IsPostBack)

SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = "data source=localhost;initial catalog=Northwind;password=;"
+"persist security info=True;user id=sa;workstation id=APJ062;packet size=4096";
string sqlstr = "select Top 10 CustomerID, CompanyName, City, Address from Customers";
cnn.Open();
SqlDataAdapter ad = new SqlDataAdapter(sqlstr,cnn);
DataTable dt = new DataTable();
ad.Fill(dt);
grdCustomer.DataSource = dt;
grdCustomer.DataBind();

//自动记数函数,在前台调用
public int GetCount()

return ++count ;

如何让excel中某一列的序号自动增加

id name pwd

当我向表格中添加name=liu, pwd=123时,id自动添加为1,再添加name和pwd时id=2

示例:
id name pwd
1 liu 123
2 kang 234
感谢 enjoyllonely的回答,使用此方法确实是能解决id自增问题,但是依然解决不了我的问题,呵呵,我是通过网站将一个list导出到excel中,在excel中使用EL表达式
序号 项目名称
1 $pList.projectName
如果使用enjoyllonely的方法会出现错误
序号 项目名称
1 $pList.projectName
北京酒店
天津酒店
error
error

1、我们可以用函数来实现自动增加序号的,我们先在A2:C2单元格输入数据。

2、表格有可能会编辑到第500行,那么,我们就选中A3:A500又有些朋友会觉得麻烦,第500行,要按住鼠标一直往下拉,麻烦呢。我们可以用定位来选择A3:A500;我们按下键盘的CTRL+G键,调出定位框;然后,在“引用位置”这里输入A3:A500再点确定。

3、这时,就全选中了A3:A500的单元格然后,在编辑栏中输入:=IF(B3>0,A2+1,"")

4、然后,再按CTRL+回车键。记得一定要按CTRL+回车键,这样全部被选中的单元格才自动填充公式。按CTRL+回车键后,现在A3:A500,还是空白的,因为,B3:B500还没有数据。

5、现在,我们在B3单元格输入数据;比如,1002这时,A3单元格自动显示序号为“2”

6、再继续在B4:B500单元格输入数据,A4:500单元格都会自动增加序号。序号是递增的。

参考技术A

软件版本:Office2013

方法如下:

1.如下图所示,如果其他行有内容,则对应的A列中当前行自动在上面序号基础上增加1:

2.输入公式如下:

3.下拉填充公式到需要的位置:

4.这样,C列一旦有了数据,A列就会跟着出现序号,并且是在上一行序号基础上增加1:

参考技术B

在A2单元格输入以下公式,然后向下填充公式

=IF(B2="","",COUNTA(B$2:B2))

公式表示:如果B2为空,A2就留空;如果B2不为空,那么A2返回B2:B2当前有内容单元格的个数。

 

详见附图

参考技术C excel本身有自动填充公式功能,但你必须输入四次才行
也就是
第一个id处,也就是A2你输入
=if(b2<>"",row(a1),"")
将这个公式下拉到C5
以后就不用再拉公式了。
四次公式这是底限,如果想连四次都不输入,那只能用vba.
区区四行跟vba事件一直跟着,我想谁都知道应该选哪一种方法。追问

谢谢!

=if(b2"",row(a1),"")
使用此公式,那么我必须向下拉A1,如果我有千万条数据呢?

追答

不用下拉。只要拉四五行就行了。
剩下的当你输入BC列内容时,A列自动就有了。
如果没有
工具,选项,编辑,看一下“扩展数据区域格式及公式”是否勾选上了。勾选上就行了。
如果你已经写好了BC列,假设是1万行
那就先选定A1:A10000,用定位法选,
然后输入上面的公式,再按下ctrl+回车,即可。
这都是基础知识,并不是多么难的问题。

首先,我是根据你的提问问答问题,你自己的提问都不是实际情况别人怎么帮你?
其次,你补充问题我这里是不会提示到的。
最后,你的补充问题仍然让人看不懂。
PS: 扣扣 63639139

本回答被提问者采纳
参考技术D

设置方法如下:

在序号栏写入公式为序号加一,例如下图:

之后只需要设置第一个序号,之后的序号就可以自动更新了。

以上是关于如何让DataGrid自动生成序号的主要内容,如果未能解决你的问题,请参考以下文章

有木有人知道 easyUI 的dataGrid的序号列怎么调整宽度?

如何让Excel自动编号及序号自动填充

如何让SELECT 查询结果额外增加自动递增序号sqlserver

如何自动排列序号?

c# 如何让datagridiew的大小 随里面数据标题的大小自动改变大小

如何在dxdbgrid的首列,加个自动序号列?