(转贴)给Repeater、Datalist和Datagrid增加自动编号列
生活随笔
收集整理的這篇文章主要介紹了
(转贴)给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/xivi/archive/2005/08/22/220117.html
總結
以上是生活随笔為你收集整理的(转贴)给Repeater、Datalist和Datagrid增加自动编号列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用滚轮实现图片缩放〔zz〕
- 下一篇: [转载]windows内存优化 没你想像