- PR -

[asp.net] GridViewのラベルコントロールでIDをデータに置き換えて表示する

1
投稿者投稿内容
ぽち
常連さん
会議室デビュー日: 2006/05/31
投稿数: 21
投稿日時: 2007-03-01 22:45
お世話になります。

テーブルA
氏名ID 氏名
1   山田
2   鈴木

テーブルB
ID   氏名ID 出張先
1001 1 東京
1002 2    大阪

テーブルBをGridViewのレコードソースにするとGridViewのItemテンプレートの
ラベルには氏名IDがそのまま数字で表示されてしまいます。
氏名IDを氏名に置き換えて表示する方法はないでしょうか?

SQLで予めjoinしておいてそれをバインドすれば表示は出来そうなのですが
編集も行たいので汚くなりそうですし
DataBindを上手く書き換えれば出来るような気がして試行錯誤しているのですが
上手くいきません。

そもそもhtml<% 〜 %>の部分はステップインが効かずウォッチ出来ないので
入ってくるであろうデータ型を想像してフィーリングで書き換えています。
なぜ上手くいかないのか原因すら特定できない状態でして何かいいデバッグ方法が
ありました併せて教示ください。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-03-01 23:47
引用:
SQLで予めjoinしておいてそれをバインドすれば表示は出来そうなのですが

それでいいんじゃないですか?

引用:
編集も行たいので汚くなりそうですし

具体的にどういうことを指して言っていますか?
テーブルAの氏名も編集する必要がありますか?だとするとUpdateQueryが多少"複雑"にはなると思いますけど。
ぽち
常連さん
会議室デビュー日: 2006/05/31
投稿数: 21
投稿日時: 2007-03-02 00:45
|ID | 氏名ID | 出張先
編集 削除 |10 | 山田 | 大阪

上記の様なよくあるパターンです。
編集の際はドロップダウンリストで氏名IDと氏名の変換をしているので
表示行のラベルでもデータソースを使用して変換するのが
一般的かなと思い投稿させて頂きました。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-03-02 04:15
ドロップダウンということはテーブルAの氏名は更新しないんですよね。
だったらUpdateQueryはテーブルAに関係ないので複雑にはなりませんね。

表示のとき(SelectQuery)はおっしゃるとおりSQLで結合すればいいと思います。
別のデータソースを用意する必要は特にないですよね。
1

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