C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: gridviewのRowCommanイベント


(過去ログ 59 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■33299 / inTopicNo.1)  gridviewのRowCommanイベント
  
□投稿者/ おさむ (21回)-(2009/02/25(Wed) 11:21:26)

分類:[.NET 全般] 

環境:asp.net

お世話になります。

現在状況としましては・・・・・
 現在あるデータをgridviewを使用し表示しています。
 また、画面のレイアウト上RowDataBoundイベント時にrowspanを使い1レコードを2行にして表示しています。
 その2行双方に(1レコードに対する2行)TemplateFieldでボタンコントロール(ButtonA,ButtonB)を設置しています。
 そのボタンがクリックさせた際にvb側のRowCommandイベントを発生させSelectedIndexChangedイベントに派生させたいのですがうまくいきません。

現象としては・・・・・
 DBにアクセスして取得したデータ件数が10件だとすると、
 gridviewで表示する際にButtonA,ButtonBがそれぞれ10個づつ(各レコードの上の行にButtonA、下の行にButtonB)が作成されるのですが、
 上から5レコードに対するボタンはクリック時RowCommandイベントが発生するのですが下の5レコードに関してはイベント自体が発生しません。
 各ボタンのIdをButton_A1〜Button_A10、Button_B1〜Button_B10とすると、Button_A1〜Button_A5、Button_B1〜Button_B5はそれぞれイベントが拾えるのですがButton_A6〜、Button_B6〜に関してはイベントが発生しない感じです。
 上から2/レコード数のレコードのみのイベントが拾えるのはRowDataBoundイベントでレイアウトを変更している際にtable.Row.Add(row)を使い行を追加しているのと何かしら関係しているとは思うのですがいまいち分かりません。

行いたい事としましては・・・・
 出来ればこのまま画面レイアウト(rowspanを使用)は変更せずgridviewでデータを表示しボタンクリック時のイベントを正しく拾いたいと思っています。
 Hiddenでコントロールを作成しておいてButtonクリック時にJavascriptを実行させHiddenコントロールのTextChangedイベントで・・・・・とか色々と考えてみたのですがうまいきませんでした。

言葉足らずでいまいち何を言いたいのか分かり辛いとは思いますが、
どなたか何か分かる方がいましたら回答のほうを宜しくお願いします。

引用返信 編集キー/
■33341 / inTopicNo.2)  Re[1]: gridviewのRowCommanイベント
□投稿者/ biac (60回)-(2009/02/26(Thu) 10:42:37)
biac さんの Web サイト
ASP.NET 1.1 のときの知識で答えると。
ページングするのでなければ、 Repeater コントロールを使った方がよほど楽ですよ。

http://social.msdn.microsoft.com/forums/ja-JP/vsgeneralja/thread/fd058882-c73b-4910-9244-ad0c5486ade8/
> GridViewで1レコードのうち1つのフィールドを2行目に表示したい

引用返信 編集キー/
■33358 / inTopicNo.3)  Re[2]: gridviewのRowCommanイベント
□投稿者/ おさむ (22回)-(2009/02/26(Thu) 15:06:24)
No33341 (biac さん)
>ページングするのでなければ、 Repeater コントロールを使った方がよほど楽ですよ。

返信有難うございます。
残念なことにページング機能をありで作成しないといけないのです。。
なので、ページングを考えるとRepeaterコントロールではなくGridViewで作成しようかなと・・・・

Dim table As Table = e.Row.Parent
Dim row As GridViewRow = New GridViewRow(-1, -1, DataControlRowType.DataRow, DataControlRowState.Normal)
Dim tbCell As TableCell = New TableCell()
row.Cells.Add(tbCell)
table.Rows.Add(row)

↑を行った際(RowDataBoundイベントで)にRowIndexをなんとか増えないようにしたいのですけど(rowspanしてても1レコードのデータに対してRowIndex:1)、うまくいきません。。


引用返信 編集キー/
■33361 / inTopicNo.4)  Re[3]: gridviewのRowCommanイベント
□投稿者/ biac (61回)-(2009/02/26(Thu) 16:15:28)
biac さんの Web サイト
> ↑を行った際(RowDataBoundイベントで)にRowIndexをなんとか増えないようにしたいのですけど(rowspanしてても1レコードのデータに対してRowIndex:1)、うまくいきません。。

それは、 うまくいかないでしょう。

先ほど私が出したリンク先は読まれました? けっきょく、 GridView を継承したコントロールを作るしかなかったようですよ。

引用返信 編集キー/
■33364 / inTopicNo.5)  Re[4]: gridviewのRowCommanイベント
□投稿者/ おさむ (23回)-(2009/02/26(Thu) 16:24:12)
No33361 (biac さん) に返信
> それは、 うまくいかないでしょう。
>
> 先ほど私が出したリンク先は読まれました? けっきょく、 GridView を継承したコントロールを作るしかなかったようですよ。

やっぱりダメですよね・・・、参照url張って頂き有難うございました。かなり参考になっています。
今は無理やりRowCommandイベントで取得しないで各ボタンにJavaScriptを埋め込んでクライアント側でhidden項目の値をいじって、そのhidden項目のtextChanged等でやろうとしています。。。

もう少し頑張ってみます。有難うございます。
引用返信 編集キー/
■33563 / inTopicNo.6)  Re[5]: gridviewのRowCommanイベント
□投稿者/ おさむ (24回)-(2009/03/04(Wed) 15:23:22)
No33361 (biac さん)
すいません、遅くなりました。
結局JavaScriptを使用し、ボタンクリック時のOnClickイベントでhiddenで持っているtextBoxのvalueを変更し、そのhiddentextのTextChangedイベント内でデータを保持しながらページ遷移することが出来ました。

有難うございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -