- PR -

動的に作成したテーブルについて

投稿者投稿内容
ミズー
会議室デビュー日: 2006/10/25
投稿数: 8
投稿日時: 2006-10-25 13:19
 はじめまして。VSを最近独学で勉強を始めました初心者です。わかりにくい文章になりますが,教えてください。
 静的にテーブルを作成した場合,セルを選択したときに,Javascrptでイベントを発生させることが出来るのですが,動的にテーブルを作成した場合,同じようにセルを選択することで,イベントを起こせるのでしょうか?
 私がやりたいことは,動的にテーブルを作成した上で,データベース上のデータを作成したテーブルにのせて表示させ,セル(行ごとに)をクリックした時に,Javascrptによりイベントを起こすことです。
 テーブル上に表示するデータの種類や個数が変わるので,データベース上にあるIDごとに区分わけして(例えば,ID N01の場合はAにリンクを飛ばし,ID N02の場合はBにリンクを飛ばす),更にセルからイベントを起こそうと思うとなかなかいい方法が思い浮かびません。
 わかりにくい文章で申し訳ありませんが,よろしくおねがします。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-10-25 13:29
いまいち状況が見えていませんが…。
JavaScriptということは、HTMLのテーブルでしょうか?
静的なテーブルでイベントを取るのに指定しているものを、動的にテーブルを生成する際にも指定してあげれば良いだけでは?

>Javascrpt
JavaScriptですね。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-10-25 14:41
引用:
 静的にテーブルを作成した場合,セルを選択したときに,Javascrptでイベントを発生させることが出来るのですが,

これはどうやっていますか?それによります。
セルも動的に作っていますよね?そのオブジェクトのAttributesに何か設定する感じになるんじゃないかと思います。
ミズー
会議室デビュー日: 2006/10/25
投稿数: 8
投稿日時: 2006-10-25 14:44
 回答ありがとうございます。
>JavaScriptということは、HTMLのテーブルでしょうか?
はい。そうです。

>静的なテーブルでイベントを取るのに指定しているものを、動的にテーブルを生成す>る際にも指定してあげれば良いだけでは?

 静的なテーブルを作成する際に,「aspx」の<TR>のタグ内に,onclickなどのイベントを書きましたが,動的に作成する場合は,「aspx」内には,書けず(書き方がわからず),「cs」内にどのような構文を使って書けば良いかわからずにいます。ネット上でいろいろ調べたのですが,似たような参考例がなく,具体的にどのような書き方をすればわからないでいます。
 
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-10-25 14:52
引用:
onclickなどのイベントを書きましたが

なるほど。

だと、C#で<TR>に対応するオブジェクト作ってますよね?(TableRowかな?)
そのAttributesプロパティからonclick属性をAddなりしてあげてください。

下記の[使用例]が参考になると思います。
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.webcontrol.attributes.aspx
ミズー
会議室デビュー日: 2006/10/25
投稿数: 8
投稿日時: 2006-10-25 15:09
 回答ありがとうございます。
>これはどうやっていますか?それによります
 静的に作成する場合,簡単に書くと
<script>
function ○○○○
</script>

<body>
<TABLE>
<TR language="javascript" onclick="return ○○○○">
</TR>
</TABLE>
</body>

 かなり省略してますが,このような感じでスクリプトを書いてます。

動的にテーブルを作成するのは,テーブルを作成した後,下記のようにセルを作成しています。

tblCell = new TableCell();
tblCell.Width = 60;
tblCell.BorderWidth = 1;
tblCell.HorizontalAlign = HorizontalAlign.Center;
tblCell.Text= objReg.Disaster;
tblCell.Font.Size = 9;
tblCell.BorderColor= Color.Black;
tblRow.Cells.Add(tblCell);

 
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-10-26 00:52
(解決したのかな、してないのかな)
あえて<TR>にonclickつけるなら、
tblRow.Attributes.Addでonclick属性を足してあげる感じですかね。
ミズー
会議室デビュー日: 2006/10/25
投稿数: 8
投稿日時: 2006-10-26 08:46
回答ありがとうございます。
>あえて<TR>にonclickつけるなら、
>tblRow.Attributes.Addでonclick属性を足してあげる感じですかね。

 親切にありがとうございます。tblRow.Attributes.Addを付け加えることで,解決いたしました。べる様,MIO様ありがとうございました。

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