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

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

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

Re[5]: ASP.NET(C#)のGridViewについてなんですが


(過去ログ 15 を表示中)

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

■5470 / inTopicNo.1)  ASP.NET(C#)のGridViewについてなんですが
  
□投稿者/ ヘイポー (1回)-(2007/07/14(Sat) 01:05:49)

分類:[ASP.NET (C#)] 

失礼いたします。
ASP.NET2.0(C#)を使い始めて1ヶ月のヘイポーと申します。初歩的な質問かもしれませんがよろしくお願いします。
現在、VisualStadio2005を使いDB(Oracle)をsqldatasourceを使ってGridViewにデータバインドさせて表示させてます。
その際に、GridViewのヘッダーのセルを結合(セルの幅を変えて結合させたようにみせる)操作をPage_Loadイベントで行っています。
そして、CommandFieldの編集ボタンを追加します。次に実行して、編集ボタンを押したときに、カスタムしたGridviewのヘッダーが元の状態に戻ってしまいます。

  ____項目___|______________
  A____|B____|編集ボタン____

               ちょっと、わかりにくいかもしれませんが、初めに表示したときはこんな感じです。
            次に、編集ボタンを押すと
 _項目_|____|_____________
  A_____|B___|更新_キャンセル_
                                というように、元に戻ってしまいます。
                (もちろん、AとBはテキストボックスに変わります)

これは、このようにしかならないのか、それとも編集ボタンを押したときにもGridViewのヘッダーをカスタム表示させることができるのかで悩んでおります。

尚、GridViewのヘッダーは、
[GridViewのID名].HeaderRow.Cells[0].columnspan = 2;//一番左のセルの幅を列2つ分に変更
[GridViewのID名].HeaderRow.Cells.removeAt(2);//はみ出たセルの削除
でいじってます。
ちょっと、コードを今は見れないんで間違ってるかもしれませんが・・・

よろしくお願いいたします。

引用返信 編集キー/
■5475 / inTopicNo.2)  Re[1]: ASP.NET(C#)のGridViewについてなんですが
□投稿者/ じゃかるた (65回)-(2007/07/14(Sat) 07:55:47)
No5470 (ヘイポー さん) に返信
> その際に、GridViewのヘッダーのセルを結合(セルの幅を変えて結合させたようにみせる)操作をPage_Loadイベントで行っています。
> そして、CommandFieldの編集ボタンを追加します。次に実行して、編集ボタンを押したときに、カスタムしたGridviewのヘッダーが元の状態に戻ってしまいます。

これだけだと正確なことは言えませんが、編集ボタン押下時にもPage_Loadイベントが発生していると思います。
その際にも
>[GridViewのID名].HeaderRow.Cells[0].columnspan = 2;//一番左のセルの幅を列2つ分に変更
>[GridViewのID名].HeaderRow.Cells.removeAt(2);//はみ出たセルの削除
が実行されているかを確認してください。


引用返信 編集キー/
■5477 / inTopicNo.3)  Re[1]: ASP.NET(C#)のGridViewについてなんですが
□投稿者/ はつね (206回)-(2007/07/14(Sat) 14:27:19)
No5470 (ヘイポー さん) に返信
> その際に、GridViewのヘッダーのセルを結合(セルの幅を変えて結合させたようにみせる)操作をPage_Loadイベントで行っています。

PostBackじゃないときのみ行っていますか?

引用返信 編集キー/
■5487 / inTopicNo.4)  Re[2]: ASP.NET(C#)のGridViewについてなんですが
□投稿者/ ヘイポー (2回)-(2007/07/15(Sun) 15:24:11)
No5475 (じゃかるた さん) に返信

>>その際に、GridViewのヘッダーのセルを結合(セルの幅を変えて結合させたようにみせる)操作をPage_Loadイベントで行っています。
>>そして、CommandFieldの編集ボタンを追加します。次に実行して、編集ボタンを押したときに、カスタムしたGridviewのヘッダーが元の状態に戻ってしまいます。
>
> これだけだと正確なことは言えませんが、編集ボタン押下時にもPage_Loadイベントが発生していると思います。
> その際にも
> >[GridViewのID名].HeaderRow.Cells[0].columnspan = 2;//一番左のセルの幅を列2つ分に変更
> >[GridViewのID名].HeaderRow.Cells.removeAt(2);//はみ出たセルの削除
> が実行されているかを確認してください。
>
>
ありがとうございます。
すいません。現在、確認はできないので確認でき次第、報告いたします。

あと確認したいことがあるんですが、GridView内のボタンを押下した際の
GridView_RowCommandイベントもしくは、GridView_RowEditingイベント、GridView_RowDeletingイベント、
GridView_RowUpdatingイベント、GridView_RowSelectingイベント(すいません、ちょっと名前が間違っているかもしれませんが)などの、GridView独自のボタンのイベントを通る前にPage_Loadイベントを通るのでしょうか。

さらに質問して申し訳ありません。
引用返信 編集キー/
■5488 / inTopicNo.5)  Re[2]: ASP.NET(C#)のGridViewについてなんですが
□投稿者/ ヘイポー (3回)-(2007/07/15(Sun) 15:33:22)
No5477 (はつね さん) に返信
> ■No5470 (ヘイポー さん) に返信
>>その際に、GridViewのヘッダーのセルを結合(セルの幅を変えて結合させたようにみせる)操作をPage_Loadイベントで行っています。
>
> PostBackじゃないときのみ行っていますか?
>

ご返答ありがとうございます。
Page_Loadイベントでは、IsPostBackの設定はしておりません。
なので、まずGiriView内のボタンを押下した際にGird_View独自のボタンイベント(ジャカルタさんに返信内容に載せております)に行く前に、Page_Loadイベントを通るかが気になる所です。
引用返信 編集キー/
■5497 / inTopicNo.6)  Re[3]: ASP.NET(C#)のGridViewについてなんですが
□投稿者/ はつね (207回)-(2007/07/15(Sun) 22:26:41)
はつね さんの Web サイト
No5488 (ヘイポー さん) に返信
>>PostBackじゃないときのみ行っていますか?
>>
>
> Page_Loadイベントでは、IsPostBackの設定はしておりません。

基本的なこととして、ASP.NETで作成したWebアプリでは、画面上で何かサーバーコントロールに対して操作を行うとサーバ側にポストバックが発生します(Page_Loadイベントが発生してIsPostBackはTrue)。
これは、他のイベントの前に発生します。
よって、最初にそのページを表示するときにだけしたい処理があるのならば、IsPostBackがFalseのときにだけ設定するようにしないと、何をやっても最初にページを表示したときと変わらなくなってしまいます。つまり、今回のように元に戻ってしまいます。


引用返信 編集キー/
■5498 / inTopicNo.7)  Re[4]: ASP.NET(C#)のGridViewについてなんですが
□投稿者/ じゃかるた (66回)-(2007/07/15(Sun) 22:45:27)
No5497 (はつね さん) に返信
> ■No5488 (ヘイポー さん) に返信

>GridViewのヘッダーのセルを結合(セルの幅を変えて結合させたようにみせる)操作をPage_Loadイベントで行っています。

>>Page_Loadイベントでは、IsPostBackの設定はしておりません。

> よって、最初にそのページを表示するときにだけしたい処理があるのならば、IsPostBackがFalseのときにだけ設定するようにしないと、何をやっても最初にページを表示したときと変わらなくなってしまいます。つまり、今回のように元に戻ってしまいます。

ヘイポーさんの回答からの解釈。
IsPostBackを判定してなければ以下処理が毎回通るように思うのですが...つまり毎回結合されるはず...かな。
>[GridViewのID名].HeaderRow.Cells[0].columnspan = 2;//一番左のセルの幅を列2つ分に変更
>[GridViewのID名].HeaderRow.Cells.removeAt(2);//はみ出たセルの削除

いずれにしても確認できる状態で見ていただくほかないですね。ちなみに私も環境がないので感覚で返信しています^^;


引用返信 編集キー/
■5546 / inTopicNo.8)  Re[5]: ASP.NET(C#)のGridViewについてなんですが
□投稿者/ ヘイポー (4回)-(2007/07/18(Wed) 00:06:43)
No5497 (はつね さん) に返信
No5488 (ヘイポー さん) に返信
>
> >GridViewのヘッダーのセルを結合(セルの幅を変えて結合させたようにみせる)操作をPage_Loadイベントで行っています。
>
> >>Page_Loadイベントでは、IsPostBackの設定はしておりません。
>
>>よって、最初にそのページを表示するときにだけしたい処理があるのならば、IsPostBackがFalseのときにだけ設定するようにしないと、何をやっても最初にページを表示したときと変わらなくなってしまいます。つまり、今回のように元に戻ってしまいます。
>
> ヘイポーさんの回答からの解釈。
> IsPostBackを判定してなければ以下処理が毎回通るように思うのですが...つまり毎回結合されるはず...かな。
> >[GridViewのID名].HeaderRow.Cells[0].columnspan = 2;//一番左のセルの幅を列2つ分に変更
> >[GridViewのID名].HeaderRow.Cells.removeAt(2);//はみ出たセルの削除
>
> いずれにしても確認できる状態で見ていただくほかないですね。ちなみに私も環境がないので感覚で返信しています^^;
>
>

ありがとうございます。
結局、PreRenderイベントというものを使うことにより、できるようになりました。
しかし、今回をきっかけに処理の流れというものがお蔭様でわかりました。
ご教授頂きありがとうございました。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -