- PR -

GridViewのtemplatefieldについて

1
投稿者投稿内容
シュン
会議室デビュー日: 2006/07/19
投稿数: 4
投稿日時: 2006-07-19 16:27
いつもお世話になっております。

今回初めてVS2005を使用して開発を行っているのですが、
GridViewのtemplatefieldについて教えて頂きたいと思います。

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" Height="168px" Width="100%"
OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="Time" HeaderText="時間" ReadOnly="True" SortExpression="Time" >
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>

<asp:templatefield headertext="件数">
<itemtemplate>
<asp:label id="CountLabel" runat="server"/>
</itemtemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:templatefield>

<asp:BoundField DataField="Capacity" HeaderText="容量" ReadOnly="True">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
</Columns>
</asp:GridView>

上記のように「時間」と「容量」については、SqlDataSourceを使用して
表示しているのですが、「件数」はどうしても同じSQLで表示できない為、
templatefieldにし別の方法で取得しようと色々苦慮して試しましたが
方法がわかりません。
対応方法を教えて頂けないでしょうか。
(templatefieldを使用しなくてもよいのならそれで結構です)

「GridView1_RowDataBound」で「e.Row.Cells(1).Text = "3/5"」のように
記述してみたのですが、確かに表示されますが、GridViewが
もう一つ(「GridView2」)存在する為、同じように書き込まれてしまい断念しました。「GridView1」に記述という指定方法がありましたらあわせて教えて下さい。

長文で言葉も乱雑で申し訳ございませんが、よろしくお願い致します。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-07-19 17:04
件数はどうやって取り出すのでしょうか?
今の情報だけだとどんなデータを表示したいのかがわからないので、対応方法の
アドバイスのしようがないと思います。
このあたりもう少し詳しく記述してみたらどうでしょう。

> 「GridView1_RowDataBound」で「e.Row.Cells(1).Text = "3/5"」のように
> 記述してみたのですが、確かに表示されますが、GridViewが
> もう一つ(「GridView2」)存在する為、同じように書き込まれてしまい断念しました。

GridView1_RowDataBoundはGridView1のときしか動かないはずです。
もし同じように書き込まれたとしたらどこか間違ってるんじゃないでしょうか。
GridView2のRowDataBoundイベントにGridView1_RowDataBoundを指定してるなんて
記述になってませんか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-07-19 17:07
引用:
上記のように「時間」と「容量」については、SqlDataSourceを使用して
表示しているのですが、「件数」はどうしても同じSQLで表示できない為、

どうしても取得できないデータって、そうないと思います。別のデータベースなのですか?
[件数]がどのようなデータで源が何なのかがちと不明です。全レコード同じデータ?

引用:
「GridView1_RowDataBound」で「e.Row.Cells(1).Text = "3/5"」のように
記述してみたのですが、確かに表示されますが、GridViewが
もう一つ(「GridView2」)存在する為、同じように書き込まれてしまい断念しました。

どこに書き込まれたんです?GridView2?
GridView2のイベントにGridView1_RowDataBoundを関連付けちゃってません?

かぶった;・・(だいぶ

[ メッセージ編集済み 編集者: べる 編集日時 2006-07-19 17:08 ]
シュン
会議室デビュー日: 2006/07/19
投稿数: 4
投稿日時: 2006-07-19 17:23
GridView2の件ですが申し訳ございませんでした。
お恥ずかしい事ですが、GridView2のイベントに関連付いていました。

言葉足らずでした。

DBサーバが2台ありまして、別々のデータベースより取得します。

「件数」は「時間」・「容量」と異なるDBサーバより取得したいので
新たに「件数」取得用のSQLを発行したいのです。

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-07-19 19:23
パフォーマンス的には問題ある方法ですけど、ItemTemplateの中に件数を取り出す
DataSourceを追加することでデータの取得や表示はできそうな気はします。
GridViewに表示される行の分だけDataSourceが動くので、いいとは思いませんが。

1

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