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

datagrid|控件

论坛中有很多人问关于DataGrid的自动编号问题 序号内容1Taye2BOx3Glass4StarCraft
一、正序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> 二、倒序的方法 序号内容4Taye3BOx2Glass1StarCraft由上面可以知道使用
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);           &nbs

时间: 2024-07-28 19:00:44

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

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

datagrid|控件 一.正序 A.AllowPaging=False情况下 <asp:DataGrid id="DataGrid1" runat="server"> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# Container.ItemIndex + 1%> </ItemTemplate> </asp:TemplateColum

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

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

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

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

如何在DataGrid控件中隐藏列

datagrid|datagrid控件 如何在DataGrid控件中隐藏列前言:    asp.net在提供我们丰富的内置控件方便我们开发的同时,一些格式化的东西也限制了我们灵活的要求.在DataGrid控件中,我们遇到的一个非常典型的问题就是如何把我们不想显示的列根据需要随时隐藏掉.解决方案:    我们不能隐藏在DataGrid里自动生成列的主要的一点原因是:DataGrid里的column不能被DataGrid的属性DataGridColumn增加.    基于以上原因,我们可以提出两种不

在DataGrid控件中获取数据项中各列的数据内容

datagrid|datagrid控件|数据 在DataGrid控件中,一般只是在绑定列或模版列中进行数据显示. 在编写DataGrid控件(控件名为dg1)的事件的处理方法时,通常希望获取数据项某列的数据. 除了SelectedInexChanged事件外,其它事件的处理方法的参数e都是DataGridCommandEventArgs类的实例.通过e实例,可以获取引发事件的数据项中数据. 1.获取绑定列中的数据 1)处于非编辑状态.或者数据项处于编辑状态但该绑定列只读   e.Item.Cel

DataGrid控件中内容不换行的处理

datagrid|datagrid控件 DataGrid控件中内容不换行的处理 // ...// 定义DataGridprotected DataGrid myDataGrid;// ... // ...// 响应DataGrid的ItemCreated事件myDataGrid.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid_ItemCreated);// ... // ...

在DataGrid控件中编辑数据项

要想在DataGrid控件中编辑数据,请使用"按钮列"中的"编辑.更新.取消"列,这些都可以在DataGrid控件的属性生成器中设置 当为DataGrid控件(以控件名为dg1为例)中加入了"编辑.更新.取消"列后,在页面的dg1控件中会多出一列,该列的每一项都是文本为"编辑"的LinkButton/Button. 如果单击了某一行的"编辑"按钮,则该行处于编辑模式,"编辑"按钮被替换为

控件-DisplayMember 如果自动感知 DataSource 中的字段名称

问题描述 DisplayMember 如果自动感知 DataSource 中的字段名称 做了一个控件,将Label 和 ComboBox 组合在一起,其中 Label 用于显示标题,ComboBox 与后端数据表的字段相连,显示字段的内容.控件样式如下: 现在合在一起的新控件,有属性 "DataSource" / "DisplayMember" / "ValueMember",该属性与单个控件中的 ComboBox 中对应属性完全相同,希望新控件

datagrid和repeader控件中替换标识值的方法_实用技巧

DataGrid控件中替换标识值的使用: <asp:DataGrid ID="dgList" runat="server" Width="100%" AutoGenerateColumns="False"> <Columns> <asp:BoundColumn DataField="COP_G_NO" HeaderText="物料号/成品货号"><