前些天想怎样给datalist加自动编号,考察了一下分页的原理,写了这个:

在编辑模版(HTML)中加入列 <%# (num-1)*32+Container.ItemIndex + 1%>即可.

说明:
num 是 当前页码值,(自己定义)
*32 是要乘以分页的行数,(如:每页32行)
ItemIndex 是行索引
+ 1 是因为索引值从0开始的

例如:

<ItemTemplate>
<td>
<%# (num-1)*30+Container.ItemIndex + 1%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "EmergencyContactName") %>
</td>
</ItemTemplate>

另外还有一种:

<%# this.DataList1.CurrentPageIndex * this.DataList1.PageSize + Container.ItemIndex + 1%>

----------------------------------------------------------------------------------------------------------------------

给Repeater、Datalist和Datagrid增加自动编号列

号 内容 1 Taye 2 BOx 3 Glass 4 StarCraft
一、正序
A、AllowPaging=False情况下,使用以下方法就可以实现:

B、AllowPaging="True"下,如果DataGrid支持分页则可以如下:

1<asp:DataGrid id="DataGrid1" runat="server">
2     <Columns>
3      <asp:TemplateColumn>
4       <ItemTemplate>
5        <%# Container.ItemIndex + 1%>
6       </ItemTemplate>
7      </asp:TemplateColumn>
8     </Columns>
9 </asp:DataGrid>

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

1<asp:DataGrid id="DataGrid1" runat="server">
2     <Columns>
3      <asp:TemplateColumn>
4       <ItemTemplate>
5        <%# this.DataGrid1.Items.Count + 1%>
6       </ItemTemplate>
7      </asp:TemplateColumn>
8     </Columns>
9</asp:DataGrid>

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

1<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">
2     <Columns>
3      <asp:TemplateColumn>
4       <ItemTemplate>
5        <%# this.DataGrid1.CurrentPageIndex * this.DataGrid1.PageSize + Container.ItemIndex + 1%>
6       </ItemTemplate>
7      </asp:TemplateColumn>
8     </Columns>
9</asp:DataGrid>

二、倒序的方法

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

1private int rowscount = 0;
2          protected int RowsCount
3          {
4               get{ return rowscount;}
5               set{ this.rowscount = value; }
6          }
7     
8          private void Page_Load(object sender, System.EventArgs e)
9          {
10               // 在此处放置用户代码以初始化页面
11               if(!IsPostBack)
12                    this.BindData();
13          }
14          private void BindData()
15          {
16               SqlConnection cn = new SqlConnection("server=(local);database=NorthWind;uid=sa;pwd=");
17               string str=@"SELECT Employees.EmployeeID, Orders.EmployeeID
18                                  FROM Employees INNER JOIN
19                        Orders ON Employees.EmployeeID = Orders.EmployeeID ";
20               SqlDataAdapter sqlda = new SqlDataAdapter(str,cn);
21               DataSet ds = new DataSet();
22               sqlda.Fill(ds);
23               this.RowsCount = ds.Tables[0].Rows.Count;
24               this.DataGrid1.DataSource = ds;
25               this.DataGrid1.DataBind();
26}

1<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True">
2                             <Columns>
3                                    <asp:TemplateColumn>
4                                           <ItemTemplate>
5                                                  <%# RowsCount - DataGrid1.CurrentPageIndex * DataGrid1.PageSize - Container.ItemIndex %>
6                                           </ItemTemplate>
7                                    </asp:TemplateColumn>
8                             </Columns>
9                      </asp:DataGrid>

转载于:https://www.cnblogs.com/rongxiaoya/archive/2012/08/25/2656770.html

给datalist加自动编号(解决博客的第XX楼)相关推荐

  1. ajax自动加载blogjava和博客园的rss

    自动加载blogjava和博客园的rss <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   "h ...

  2. 使用Travis CI自动部署Hexo博客

    自从使用GitHub Pages和Hexo来发布博客之后,不得不说方便了许多,只需要几个简单的命令博客就发布了.但在不断的使用中发现每次的发布操作也挺耗时的. 我一般的操作是将平时整理好的md文件放到 ...

  3. 用TravisCI持续集成自动部署Hexo博客的个人实践

    优秀的程序员都是不用持续集成的 前几天我面试了一个码农,连续几个专业问题他都没答上来. 尴尬之余,我问它:「你没有什么理想吗?你现在最渴望的事情是什么?」 码农转悠着大眼睛,不假思索道:「做一个持续集 ...

  4. 解决博客园中代码着色问题

    解决博客园中代码着色问题 参考文章: (1)解决博客园中代码着色问题 (2)https://www.cnblogs.com/mushan/p/3351594.html 备忘一下.

  5. hexo加Github搭建个人博客(一、二)

    hexo加Github搭建个人博客(一) 在这之前,我们先介绍一下hexo加Github搭建博客的有关事项 1.hexo搭建的是静态网页,每次修改后都要执行静态生成,然后再执行部署 2.Github仓 ...

  6. 如何id变动自动保存html软件,Wordpress折腾小记:彻底解决ID不连续的问题-自动保存、自动修订 | 地瓜哥博客网...

    使用Wordpress,尤其从3.0走入Wordpress世界的朋友,也许都遇到过一个问题:自动保存(Auto-Save)和文章修订(Post-Revisioning)功能导致文章ID不连续的问题.有 ...

  7. 解决博客园添加hexo看板娘无法加载问题

    关于添加看板娘 因为觉得作者设置的页面左下角的网易云音乐并不实用所以将其改成看板娘 但是由于太菜,不能很好的理解live2d的官方文档 数次度娘都是一些不能用的版本,不是配置少双引号,就是路径错误,看 ...

  8. wordpress文章自动同步天涯博客插件wp2Tianya发布

    haha,第2个插件了.看到第1个插件wp2netease有人下载,有人使用,真是让人开心啊!天涯tianya.cn发博客的时候需要验证码,开始觉得这样的肯定做不了同步,后来经过分析,发现还有一个接口 ...

  9. 解决博客园模版错误排版的一个问题

    昨天发现我的博客换了个模版之后,文章显示页面出现错误,就是侧边栏不在侧边显示,而是显示到了页面的下端.怎么看,怎么不爽,必要解决之. 首先以为是模版的问题,因为之前用的模版没有这个问题,于是换了几个模 ...

最新文章

  1. 【struts2】struts2配置文件—struts.properties
  2. matplotlib的默认字体_浅谈matplotlib默认字体设置探索
  3. 数据结构——队列的C++实现
  4. 打击侵犯公民个人信息罪的司法困境
  5. 请教各位 android activity之间切换的问题
  6. Allegro导入DXF
  7. zedgraph画图
  8. 快速稀疏角点光流框架(Fast sparse corner optical flow framework)
  9. Linux系统的镜像文件iso下载地址
  10. 记账一定要读财务专业吗
  11. 电机控制方法以及区别
  12. lwj_C#_homework get set 属性
  13. 要提高微信群人气,活跃用户,如何在微信群设置签到打卡?
  14. 增量式编码器与绝对值编码器的区别
  15. Bandizip安装教程
  16. android手机红外代码HAL,Android 红外遥控器适配
  17. ttkbootstrap 学习
  18. Homekit智能家居DIY设备一智能灯泡
  19. 方向导数与梯度的实质理解
  20. 提醒一下自己mpc加载字幕的设置

热门文章

  1. java jigsaw demo_Java9模块化(Jigsaw)初识
  2. java 字符串 字节数组_字符串到字节数组,字节数组到Java中的字符串
  3. Java中的ObjectOutputStream –将对象写入文件
  4. primefaces教程_Primefaces AjaxBehavior和AjaxExceptionHandler组件示例教程
  5. Python SimpleHTTPServer – Python HTTP服务器
  6. 模拟登录,发送amf类型数据
  7. 进程管理 systemctl控制
  8. [译]Flask教程--将表单数据发送到模板
  9. 51Nod 1046 A^B Mod C(日常复习快速幂)
  10. 【转】 TechED2010与我(三) —— 初识云计算