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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 >>
■45229  Re[7]: GridViewへTemplateを動的に作成
□投稿者/ T_A~K_A -(2010/01/06(Wed) 17:11:20)
    いしださん返信ありがとう御座います。

    > 動的に作成したコントロールですから、最初だけ作成しても駄目ですよ。
    だとすると動的に作成したBoundFieldは、残っている事が疑問です。
    全て消えてしまうのであれば理解できますが・・・。

    2回目のPostBack時にGridViewのカラムの数を取得したら6個ありました。(初回に動的に6個追加しています)
    つまり、GridViewは追加した列数は分かっている?という事になります。
    但し、TemplateFieldの情報は消えてしまっている状態です。

    従って、同様に初回時に追加したカラムを再度追加すると6個アペンドされてしまいます。
    カラムの数が12個になってしまいます。実際にブラウザに表示されましたが、やはり列が増えてしまいました。

    ですので、以降GridViewのカラムをクリアしてから動的に再度作成しバインドさせてみました。
    一応期待動作するようになりました。
記事No.45217 のレス / END /過去ログ76より / 関連記事表示
削除チェック/

■45231  Re[8]: GridViewへTemplateを動的に作成
□投稿者/ もりお -(2010/01/06(Wed) 17:20:19)
    2010/01/06(Wed) 17:24:19 編集(投稿者)

    No45229 (T_A~K_A さん) に返信
    > だとすると動的に作成したBoundFieldは、残っている事が疑問です。

    No45224 への返答になっていますがご容赦ください。

    > 仮にそうであってもBoundFieldは消えません。残っています。
    > TemplateFieldが消えてしまいます。

    ポストバック発生時に動的に生成されたコントロールが消えてしまうと
    仮定するならば同じように動的に生成した BoundField も消えるはずなので
    仮定は間違っているという意味でしょうか。
    この論理を保証するには TemplateField と BoundField は PostBack 時に同
    じ挙動を示すという前提が必要になります。
    ところが、この前提の部分が違う可能性があります。
    BoundField と TemplateField はどちらも IStateManager インターフェース
    を実装した DataControlField クラスを継承したものですが TemplateField
    の ItemTemplate には ITemplate インターフェースを実装しただけのクラス
    のインスタンスをセットしています。
    つまり、BoundField は ViewState から復元されるけれども TemplateField
    の ItemTemplate は復元されないため PostBack 時に消えてしまうという可能
    性が考えられます。
記事No.45217 のレス / END /過去ログ76より / 関連記事表示
削除チェック/

■45240  Re[9]: GridViewへTemplateを動的に作成
□投稿者/ T_A~K_A -(2010/01/07(Thu) 10:08:17)
    もりおさん返信ありがとう御座います。

    > ポストバック発生時に動的に生成されたコントロールが消えてしまうと
    > 仮定するならば同じように動的に生成した BoundField も消えるはずなので
    > 仮定は間違っているという意味でしょうか。
    間違っているという意味ではありません。
    なぜ?だろうという事です。

    > この論理を保証するには TemplateField と BoundField は PostBack 時に同
    > じ挙動を示すという前提が必要になります。
    > ところが、この前提の部分が違う可能性があります。
    > BoundField と TemplateField はどちらも IStateManager インターフェース
    > を実装した DataControlField クラスを継承したものですが TemplateField
    > の ItemTemplate には ITemplate インターフェースを実装しただけのクラス
    > のインスタンスをセットしています。
    > つまり、BoundField は ViewState から復元されるけれども TemplateField
    > の ItemTemplate は復元されないため PostBack 時に消えてしまうという可能
    > 性が考えられます。
    可能性として有り得るのであれば、疑問は解けます。
    わざわざ、ありがとう御座います。
記事No.45217 のレス / END /過去ログ76より / 関連記事表示
削除チェック/

■45254  Re[10]: GridViewへTemplateを動的に作成
□投稿者/ T_A~K_A -(2010/01/07(Thu) 15:26:30)
    こんにちは。T_A~K_Aです。
    
    何とか TemplateField と BoundField を動的に作成する事が出来ました。
    ただ、動的に作成する場合はPage_Loadではなく、Initで作成しておく必要があるようです。
    
    ■参考URL
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36752&forum=7
    
    でないと動的に作成した TemplateFieldのCheckBox に対してユーザがチェックした情報を
    次回のPost時に、FindControlで取得できない問題があります。
    とりあえず、これは回避できました。
    
    ただ、特定の行に対して編集モードにするという事がやりたいのですが・・・。
    具体的には、チェックされている行を.Net標準の編集モードを使用したいのです。
    
    Me.GVDetailLeft.EditIndex = 2 ' 編集モードにした行をEditIndexへ代入
    Me.GVDetailLeft.DataSource = Session("Left")
    Me.GVDetailLeft.DataBind()
    
    Me.GVDetailRight.EditIndex = 2 ' 編集モードにした行をEditIndexへ代入
    Me.GVDetailRight.DataSource = Session("Right")
    Me.GVDetailRight.DataBind()
    
    インプリメントした独自のTemplateFieldにて自動的に判断させる事はできないのでしょうか?
    バインド時にInstantiateIn(ByVal container As Control) Implements System.Web.UI.ITemplate.InstantiateInが
    行単位にコールされるので・・・。
    
    どなたかご存知でしたらご教授願います。
    
    
    
記事No.45217 のレス /過去ログ76より / 関連記事表示
削除チェック/

■45264  Re[11]: GridViewへTemplateを動的に作成
□投稿者/ T_A~K_A -(2010/01/07(Thu) 16:58:47)
    T_A~K_Aです。

    自己解決致しました。

    Dim tmpField As TemplateField

    tmpField.ItemTemplate = New MyTemplateField
    tmpField.EditItemTemplate= New MyTemplateField ★

    ★印のコードを追加したところ、対象行が編集モードへ変換されました。
    EditItemTemplateに対してインプリメントしていませんでしたorz

    お騒がせしました。皆さんありがとう御座います。
記事No.45217 のレス / END /過去ログ76より / 関連記事表示
削除チェック/

<前の20件

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 >>

ヒット件数が多いので過去ログ1〜76 までの検索結果 / 過去ログ77からさらに検索→

パスワード/

- Child Tree -