どっとねっとふぁん

C# Tips And Samples
in 検索

記事「GridViewの1行に複数のデータを折り返して表示する」 に関するスレッド

最新の投稿は、投稿日時: 05-09-2006, 9:45 午前 投稿者: ono です。スレッドには 4 件の返答があります。
投稿のソート: 前へ 次へ
  •  04-21-2006, 12:21 午後 671

    記事「GridViewの1行に複数のデータを折り返して表示する」 に関するスレッド

    記事「GridViewの1行に複数のデータを折り返して表示する」に関しての質問、疑問、アドバイスなどをこの投稿に続けて書き込んでください。
    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
  •  05-08-2006, 8:19 午後 685 返答元: 671

    Re: 記事「GridViewの1行に複数のデータを折り返して表示する」 に関するスレッド

    いつも参考にさせてもらってます。

    記事を読んで、色々試してみたところある壁にあたってしまいました。

    テーブルのbit型のデータをGridViewコントロールのTemplateFieldにバインドさせようとしています。
    bit値がtrueであればLabelに、falseであればCheckboxにBindしたいのですが、
    このようなことは可能なのでしょうか???(可能だとは思うんですがうまくいかず・・。)


    <DB>
    Aさん true
    Bさん false
    Cさん false



    <GridView>
    Aさん    支払い済み
    Bさん     □
    Cさん     □


    http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnvs05/htm/ASP2.0/gridview/GridViewEx07.asp
    このページは読んでみました。


    一番カンタンそうなのは、以下の部分を "IsPaid"の値をもとに分岐させる・・?
    でも何か違和感もあったり。。。

              <ItemTemplate>
                    <asp:CheckBox ID="chk_Pay" runat="server" Checked='<%# Bind("IsPaid") %>' Enabled="True" />
                     <asp:Label ID="lbl_Paid" runat="server" Text='支払い済み' Width="75px"></asp:Label>
              </ItemTemplate>


    どなたか教えて頂けないでしょうか。
    Task - 64

  •  05-08-2006, 10:31 午後 686 返答元: 685

    Re: 記事「GridViewの1行に複数のデータを折り返して表示する」 に関するスレッド

    分岐はむしろ難しそうなので、CheckBoxとLabelを両方貼り付けて、Visibleプロパティもバインディングするという手を考えてみました。

    <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("IsPaid") %>' Visible='<%# !((bool)Eval("IsPaid")) %>' Enabled="false"/>
    <asp:Label ID="Label1" runat="server" Text="支払い済み" Visible='<%# Eval("IsPaid") %>' />

    これをItemTemplateの中に記述することで手元では動いてます。

    #ふむ、こんな使い方も便利そう。
     なんらかの形でまとめてみようっと。


    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
  •  05-09-2006, 12:38 午前 687 返答元: 686

    Re: 記事「GridViewの1行に複数のデータを折り返して表示する」 に関するスレッド

     ono wrote:

    <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("IsPaid") %>' Visible='<%# !((bool)Eval("IsPaid")) %>' Enabled="false"/>
    <asp:Label ID="Label1" runat="server" Text="支払い済み" Visible='<%# Eval("IsPaid") %>' />

    おのさん、ありがとうございます。
    なるほど・・・Evalでtruf/falseを取得して、それをVisibleにバインドすると。

    おのさんの記事を読んで、TemplateFieldでほとんど何でも出来てしまうことを知り、
    今回も大変勉強になりました。

    # 早く答える側になりたいなぁ。。

  •  05-09-2006, 9:45 午前 688 返答元: 687

    Re: 記事「GridViewの1行に複数のデータを折り返して表示する」 に関するスレッド

    > なるほど・・・Evalでtrue/falseを取得して、それをVisibleにバインドすると。

    そうですね。True/Falseが返ってくるので、それをうまく使ってやろうという形です。
    TemplateFieldに貼り付けたコントロールへのバインディングをウィザードでいろいろ設定してみてるときに、いろんなプロパティにデータをバインドすることが可能だと知ったので今回それを使ってみました。
    GridViewやDetailsViewはTemplateFieldを利用するとものすごく柔軟性が高くなるんですけど、最初にそれに気づくきっかけがなにか必要ですよねぇ。


    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
RSS ニュースフィードで参照
SkinName:iroha_CS2
Powered by Community Server, by Telligent Systems