電子書籍の厳選無料作品が豊富!

asp.net初心者です。
あるコーディングをしたのですが、サーバーサイドでどう記述したらよいのかわからず悩んでいます。
内容は以下のとおりです。

TBLAから年をグループ化し降順に7年分取得します。
select TOP 7 YYYY from TBLA group by YYYY desc
これをgridviewのヘッダーに表示したいのです。

gridviewの列は7列。例えば上記クエリで取得した値が
2012、2011、2010、2009、2008、2007、2006
だとすると
gridviewのヘッダーは左から2006、2007、2008、2009、2010、2011、2012と
表示したいです。
※取得した年は7年分あるとは限りません。

配列を使って下記のように考えたのですが、asp.netでの記述がわからず困っています。
記述方法、またはもっといい案があればご教授をお願いします。

<私の考えた案>
(1)クエリにて年を取得
(2)配列に(1)の年を配列にセットする
 arry(1)=2012 ~ arry(7)=2006
(3)for文にてヘッダーにセット
yearcnt=(1)の件数
 for i = yearcnt to 1 step -1
lblHeder1_(i).text=arry(i)
next
 
 ※ヘッダーのラベル名は1列目:「lblHeder1_1」、2列目:「lblHeder1_2」3列目:「lblHeder1_3」・・・と続きます。
  lblHeder1_(i)の(i)を変数にする方法もわかりません。

A 回答 (1件)

その案を使うのであればFindControl関数使えば行けそうに思います



arryを 0からはじまる1次元配列の想定で書いています

For i=arry.Length - 1 to 0 step -1
Dim targetLabel As Label = CType(FindControl("lblHeader1_" & i.ToString()), Label)
targetLabel.Text = arry(i)
Next

実行はしていませんがたぶんいけるんじゃないかと。
    • good
    • 0
この回答へのお礼

お返事おそくなり申し訳ありません。
FindControlを使用することで完成できました。
ありがとうございました。

お礼日時:2012/04/18 23:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!