- PR -

DataGridにて行数表示方法

投稿者投稿内容
まめ
会議室デビュー日: 2003/06/04
投稿数: 17
投稿日時: 2003-06-09 16:17
1列目に、データ数分の行番号を表示させたいのですが、
どのように表示させればよいか教えて下さい。
まだわたくし、DataGridの使い方を把握できていません・・・。

テーブルコントロールに表示するように、
Rows[0].Cells[1].などで表示できるのかと思いましたが、
違うようなので・・・。
くだらない質問かもしれなくて、申し訳ないのですが、
宜しくお願い致します。
否かっぺい
常連さん
会議室デビュー日: 2003/02/10
投稿数: 48
投稿日時: 2003-06-09 17:28
動作未確認で申し訳ないですが
一列目をTemplateColumnにしてItemDataBoundイベントでe.Item.ItemIndex+1を
入れてみてはいかがでしょうか?
ZEBRA
常連さん
会議室デビュー日: 2003/04/14
投稿数: 38
投稿日時: 2003-06-09 23:06
こんばんわ。

>e.Item.ItemIndex+1を
>入れてみてはいかがでしょうか?

この方法だと、ページをまたがった場合、次ページ以降の行番号もまた1から始まってしまいます。
もし、ページング処理を有効にしている場合、コードビハインド側で計算してやる必要があります。

やり方は、テンプレート列内のコントロールのDataBindingsプロパティを編集し、「カスタム連結式」でコードビハインド内に定義したメソッドを呼び出すようにすれば可能だと思います。

「カスタム連結式」に記述する内容が分からない場合は、「単純連結」を選択した場合の「カスタム連結式」(この場合グレーアウトされている)の内容を参考にすると良いと思います。
まめ
会議室デビュー日: 2003/06/04
投稿数: 17
投稿日時: 2003-06-11 15:18
否かっぺいさん、ZEBRAさん、
どうもありがとうございました!
また宜しくお願い致します。
ともみん
会議室デビュー日: 2003/05/30
投稿数: 9
投稿日時: 2003-06-17 17:52
まめさまの引用で申し訳ございませんが、教えて下さい。

 e.Item.ItemIndex+1

をDataBindingsプロパティに入れるには、どのように設定すればよいか教えて頂きたいです。

現在、下記の様に設定しておりますが
 DataBinder.Eval(Container, "ItemIndex")
0から始まってしまうため、+1したいのですが・・・。

よしな
常連さん
会議室デビュー日: 2003/06/16
投稿数: 20
投稿日時: 2003-06-17 18:01
<%# DataBinder.Eval(Container, "Itemindex") %>

を単純に

<%# DataBinder.Eval(Container, "Itemindex")+1 %>

してはダメですか?
ともみん
会議室デビュー日: 2003/05/30
投稿数: 9
投稿日時: 2003-06-17 18:15
早々のお返事、どうもありがとうございます。

これを行うと、
 演算子 '+' を 'object' と 'int' 型のオペランドに適用することはできません。
というエラーが出てしまいました。

文字列操作を行えばよいのかと思いますが、ToIntなどで変換しようとしましたがどうもうまく出来ませんでした。。。
GUNNM
常連さん
会議室デビュー日: 2002/01/23
投稿数: 30
お住まい・勤務地: 横浜
投稿日時: 2003-06-17 23:50
試していないので自信ないのですが、DataBinder.Evalを使わずに、Container.ItemIndexとしてしまってはいかがでしょうか?
<%# Container.ItemIndex + 1 %>
たぶん、ItemIndexって、int型でしたよね?
違ったらキャストしてみてください。。。
<%# ( int )Container.ItemIndex + 1 %>

スキルアップ/キャリアアップ(JOB@IT)