2011-02-04 3 views
0
<asp:GridView ID="GridView2" runat="server" AllowPaging="True" AutoGenerateColumns="False" 
           DataSourceID="opendiarysource" Font-Size="Small" style="font-size: 8pt; border-top-style: solid; border-right-style: solid; border-left-style: solid; border-bottom-style: solid; color: black;" AllowSorting="True" > 
           <Columns> 
            <asp:TemplateField HeaderText="Date Added" SortExpression="added7"> 
             <EditItemTemplate> 
              <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("added7") %>'></asp:TextBox> 
             </EditItemTemplate> 
             <ItemTemplate> 
              <br /> 
              <asp:Label ID="Label1" runat="server" Text='<%# Bind("added7") %>'></asp:Label><br /> 
              &nbsp; 
             </ItemTemplate> 
            </asp:TemplateField> 
            <asp:BoundField DataField="ByWhom" HeaderText="Added By" SortExpression="ByWhom" /> 
            <asp:BoundField DataField="BOOKNO" HeaderText="Book #" SortExpression="BOOKNO" /> 
            <asp:BoundField DataField="ClearedBy" HeaderText="Cleared By" SortExpression="ClearedBy" Visible="False" /> 
            <asp:BoundField DataField="Done7" HeaderText="Date Done" SortExpression="Done7" Visible="False" /> 
            <asp:BoundField DataField="ForWhom" HeaderText="For Whom" SortExpression="ForWhom" /> 

この最後のフィールドを列ではなく行の下に表示します。グリッドビューの列を行として表示

        <asp:TemplateField HeaderText="Note" SortExpression="Text"> 
             <EditItemTemplate> 
              <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Text") %>'></asp:TextBox> 
             </EditItemTemplate 

             <ItemTemplate> 
              <asp:Label ID="Label3" runat="server" Text='<%# Bind("Text") %>'></asp:Label> 
             </ItemTemplate> 
            </asp:TemplateField> 
           </Columns> 
          </asp:GridView> 

答えて

1

GridViewの代わりにListViewを使用してください。これがオプションの場合は、ListViewを使用してください。それは多くのテンプレート機能を持っています。 テンプレートたいと思います:

<HeaderTemplate> 
      <table> 
     </HeaderTemplate> 
     <ItemTemplate> 

       <tr> 
        <td> 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("col1") %>' ></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="Label2" runat="server" Text='<%# Eval("col2") %>' ></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td colspan="10"> 
         <asp:Label ID="Label3" runat="server" Text='<%# Eval("Text") %>' ></asp:Label> 
        </td> 
       </tr> 

     </ItemTemplate> 
     <EditItemTemplate> 

       <tr> 
        <td> 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("col1") %>' ></asp:Label> 
        </td> 
        <td> 
         <asp:Label ID="Label2" runat="server" Text='<%# Eval("col2") %>' ></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td colspan="10"> 
         <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Text") %>' ></asp:TextBox> 
        </td> 
       </tr> 
     </EditItemTemplate> 
     <FooterTemplate> 
      </table> 
     </FooterTemplate> 
+0

私はどのように使うかに列を変換するために使用されますリストビュー、私はVB 2005を使用していますが、コントロールはありません。それのために私のasp.net – MyHeadHurts

+0

@MyHeadHurts(面白い名前、ところで:)では、代わりにDataListを使用することができます。 –

1

は、この方法によって、列にすべての行を変換します....

public DataTable ConvertColumnsAsRows(DataTable dt) 
{ 
    DataTable dtnew = new DataTable(); 

    for (int i = 0; i <= dt.Rows.Count; i++) 
    { 
     dtnew.Columns.Add(Convert.ToString(i)); 
    } 
    DataRow dr; 

    for (int j = 0; j < dt.Columns.Count; j++) 
    { 
     dr = dtnew.NewRow(); 
     dr[0] = dt.Columns[j].ToString(); 
     for (int k = 1; k <= dt.Rows.Count; k++) 
      dr[k] = dt.Rows[k - 1][j]; 
     dtnew.Rows.Add(dr); 
    } 
    return dtnew; 
} 

この関数は、行

関連する問題