2011-11-09 12 views
0

私はこれを理解することはできません。カラムIDが1のテーブルがあります。親ディレクトリ これはオプションにサブオプションを持たせることができます。だから、このようなものになるだろう:私は念のために、私が最もgreatful..andだろうは、asp.net gridviewで親子レコードを表示しています

id | parentid 
1 |  null 
3 |  1 
2 |  null 

任意のアイデア:私はそれが私のGridViewに表示する必要がどのように

id | parentid 
1 | null 
2 | null 
3 |  1 

はこのようなものですselectでSql COALESCEを検索して試しましたが、どちらもうまくいきませんでした。

+1

を意味のある方法で質問に答えてください。あなたの「どのように見えるか」オプションは、データを中央に置き、アイテム2と3の位置を入れ替えるだけです。その注文はどのくらい正確に決定されていますか? –

答えて

0

GridViewではなくListViewまたはDataListを使用します。これは、正しい道にあなたを置く必要があります。

<table width="595px"> 
    <asp:DataList BackColor="#ffffff" id="DataList1" DataKeyField="<ID>" OnItemDataBound="DataList1_ItemDataBound" runat="server" Width="100%">  
     <ItemTemplate> 
      <tr> 
       <td> 
        <asp:LinkButton ID="LinkButton1" runat="server" Text="+" OnCommand="LinkButton1_Command" CommandArgument='<%#Container.ItemIndex%>'></asp:LinkButton>  
       </td> 
       <td><%#Eval("<COLUMN NAME>")%></td> 
       <td><%#Eval("<COLUMN NAME>")%></td> 
       <td><%#Eval("<COLUMN NAME>")%></td> 
      </tr> 
      <asp:PlaceHolder ID="plcChildView" runat="server"> 
       <asp:DataList ID="DataList2" runat="server" Width="100%"> 
        <ItemTemplate> 
         <tr> 
          <td><%#Eval("<CHILD OLUMN NAME>")%></td> 
          <td><%#Eval("<CHILD COLUMN NAME>")%></</td> 
          <td><%#Eval("<CHILD COLUMN NAME>")%></</td>       
         </tr> 
        </ItemTemplate> 
       </asp:DataList> 
      </asp:Panel> 
     </ItemTemplate> 
    </asp:DataList> 
</table> 

、ユーザーがDataList1でLinkBut​​tonコントロール/ボタンをクリックすると、このような何か:私は十分な情報がにここに存在しているとは思わない

protected void LinkButton1_Command(object sender, CommandEventArgs e) 
{ 
    //pass index of item in command argument 
    int itemIndex = Convert.ToInt32(e.CommandArgument);  

    //find the pnlChildView control 
    PlaceHolder childViewHolder = (PlaceHolder)DataList1.Items[itemIndex].FindControl("plcChildView"); 
    if (childViewHolder != null) 
    { 
     //toggle visibility of childViewPanel and bind child list if panel is visible 

     if (childViewHolder.Visible) 
     { 
      DataList childList = childViewHolder.FindControl("DataList2"); 
      if (childList != null) 
      { 
       int keyValue = (int)DataList1.DataKeys[itemIndex]; 

       //bind the list using DataList1 data key value 
       childList.DataSource = <DATA SOURCE>; //get data using keyValue 
       childList.DataBind(); 
      } 
     } 
    } 
} 
+0

私のために働いてくれたことに感謝しますが、その場で処理するためのサブオプションが必要だったので、私たちはツリービューを使用します:Sしかし、 – Andres

+0

心配なし...;) –

関連する問題