给Repeater、Datalist和Datagrid增加自动编号列
生活随笔
收集整理的這篇文章主要介紹了
给Repeater、Datalist和Datagrid增加自动编号列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 號 | 內容 |
| 1 | Taye |
| 2 | BOx |
| 3 | Glass |
| 4 | StarCraft |
一、正序
A、AllowPaging=False情況下,使用以下方法就可以實現:
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剛好是當前的序號]
B、AllowPaging="True"下,如果DataGrid支持分頁則可以如下:
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/top5/archive/2009/10/09/1579478.html
總結
以上是生活随笔為你收集整理的给Repeater、Datalist和Datagrid增加自动编号列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.net(C#)-彩色图片转化为黑
- 下一篇: SQL Server性能调优入门(图文版