- - PR -
DataGridにて行数表示方法
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-06-18 10:04
GUNNMさまの方法で出来ました!
どうもありがとうございました。 なかなか奥が深く、勉強することがたくさんありますね・・・。 わかると楽しいですが。 また宜しくお願い致します! |
|
投稿日時: 2003-06-18 10:21
先ほど、GUNNMさまの方法で出来ました!
と書き込みしましたが、この方法ですと、 ZEBRAさまの書き込みのような ページをまたがった場合の処理は出来ません。 度々失礼致しました。 |
|
投稿日時: 2003-06-19 00:37
こんばんわ。
説明不足のようでしたので、サンプルコードを提示致します。 まず、画面側でのデータグリッドのバインドで以下の様に記述して下さい。 <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 81px; POSITION: absolute; TOP: 27px" runat="server" Width="473px" Height="221px" PageSize="5" AllowPaging="True"> <Columns> <asp:TemplateColumn> <ItemTemplate> <asp:Label id=Label1 runat="server" Width="122px" Text="<%# this.GetItemNo(Container) %>"> </asp:Label> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> 次にコードビハインド側で以下のコードを記述して下さい。 protected DataSet ds; private void Page_Load(object sender, System.EventArgs e) { if(this.IsPostBack) { this.ds = (DataSet)this.Session["ds"]; } else { this.ds = new DataSet(); this.sqlDataAdapter1.Fill(this.ds); this.Session["ds"] = this.ds; } this.DataGrid1.DataSource = this.ds; this.DataGrid1.DataBind(); } private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { this.DataGrid1.CurrentPageIndex = e.NewPageIndex; this.DataGrid1.DataBind(); } protected string GetItemNo(DataGridItem Container) { int rtn; rtn = Container.ItemIndex + (this.DataGrid1.CurrentPageIndex * this.DataGrid1.PageSize) + 1; return rtn.ToString(); } 上記のようにコーディングしていただければ、ページング処理を実現できるかと思います。ちなみにこの方法は、バインド先をコードビハインド側に記述している為、データソースの値をいろいろなやり方で編集できます。(かなり凝ったバインドが可能です) コードの具体的な意味はヘルプ等で参照して下さい。 |
|
投稿日時: 2003-06-19 00:43
あっ、タブが有効になっていないですね。(^^)
{}の間は、タブでインデントしているので、ご了承下さい。 |
|
投稿日時: 2003-06-23 20:56
ZEBRAさま
いつもご丁寧に教えてくださり、どうもありがとうございます! 解決できました☆ また宜しくお願い致します。 |
|
投稿日時: 2008-03-17 11:28
データリストですが、<%# DataBinder.Eval(Container, "ItemIndex").ToString() + 1 %> で出来ました。
|