2016-10-06 15 views
0

リピータとデータセットを使用していくつかのCBLを接続しようとしています。データセットには、同じスキーマと(1つの、単一の)リレーションを持つ2つのテーブルが含まれています(SQLの土地では、自己結合と考える)。DataSetとリピータを使用したネストされたCheckBoxList

DataSource =の関係を設定するとコントロールがレンダリングされるとき、子要素を表示することができます。私はモデルが良いのは分かっていますが、モデルをテストするために間違って配置されています(下記のコードを参照してください)。私がいないすべての親が子供を持っているすべての

  • で表示するために、親要素を取得難しさを持っています

    1. 、まだないものが
    2. を表示する必要があります。

      問題があります

    3. これは正しい考え方で近づいていますか?つまり、私は何か基本的なものがないのですか? CBL(プレーンテキスト)の外側の実装は、細かいper this article

      <asp:Repeater ID="ParentRepeater" runat="server"> 
           <ItemTemplate> 
            <asp:CheckBoxList ID="ParentCBL" runat="server" 
            DataSource='<%# DataBinder.Eval(Container.DataItem,"Joined") %>' 
            DataTextField="TextProperty" 
            DataValueField="ValueProperty"> 
            </asp:CheckBoxList> 
            <asp:Repeater ID="ChildRepeater" runat="server"> 
             <ItemTemplate> 
              <asp:CheckBoxList ID="ChildCBL" runat="server" 
              DataSource='<%# DataBinder.Eval(Container.DataItem, "Joined") %>' 
              DataTextField="TextProperty" 
              DataValueField="ValueProperty"> 
              </asp:CheckBoxList> 
             </ItemTemplate> 
            </asp:Repeater> 
          </ItemTemplate> 
      </asp:Repeater> 
      

    ページの読み込みがあなたがChildRepeater

  • 場合には結合しない、あなたのコードで

    DataSet ds = Foo.foo(); 
    ParentRepeater.DataSource = ds.Tables["Parent"]; 
    ParentRepeater.DataBind(); 
    
  • 答えて

    0
    1. 壮大な何もない作品あなたはhttps://support.microsoft.com/en-us/kb/306154に従ってチェックボックスにプレーンテキストを変更するだけです210では、CheckBoxListを使用する必要はありません。しかし、リピーターの内部では1つのチェックボックスしか使用しないでください。
    +0

    他のコントロールを使用して関係を表示する必要がありますか?もしそうならツリービューをお勧めしますか? – PFMMX

    +0

    ご要望によって異なります。各ノードのチェックボックスを表示したい場合は、TreeViewを使用すると、ノードでチェックボックスを使用できるため、優れたソリューションになります。しかし、あなたが間違って使用したにもかかわらず、リピーターも可能です。 – Alexey

    +0

    お金の上に@アレクシー。リピータに座って、チェックボックスの値を含む隠しフィールドを追加しました(CBLの初期推論)。 – PFMMX

    関連する問題