2012-04-11 3 views
2

私は、実行時にボンディングされたカートアイテムのグリッドビューを持っています。今、私の要件は、グリッドに2つのヘッダー行があります。可能ですか?誰でも助けてくれますか?以下はグリッドビューで2つの見出し行が必要

My Design For Grid http://content.screencast.com/users/Pr6546/folders/Default/media/f7da2da4-f80e-4674-b1d4-0ccd872966d2/Capture.PNG http://www.screencast.com/t/g4HkqlSpx

は私のグリッドソース

<asp:GridView ID="gvCheckOutItems" GridLines="None" ShowFooter="true" DataKeyNames="Item_No" 
    Width="100%" border="0" CellSpacing="0" CellPadding="5" AutoGenerateColumns="false" 
    CssClass="Checkout-Grid" runat="server" OnRowCreated="gvCheckOutItems_RowCreated"> 
    <Columns> 
     <asp:TemplateField HeaderStyle-Width="7%"> 
      <ItemTemplate> 
       <asp:LinkButton ID="lnkBtnRemove" runat="server" OnClick="lnkBtnRemove_Click" Text="Remove" 
        CssClass="blue-link"></asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField HeaderText="Item No" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" 
      DataField="Item_No" HeaderStyle-Width="7%" /> 
     <asp:BoundField HeaderText="Title" HeaderStyle-HorizontalAlign="Left" FooterStyle-HorizontalAlign="Center" 
      ItemStyle-HorizontalAlign="Left" DataField="Title" HeaderStyle-Width="25%" /> 
     <asp:BoundField HeaderText="Offered By" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" 
      DataField="Trainer" HeaderStyle-Width="16%" FooterText="<strong>Order Total</strong>" /> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="txtItemFormat" runat="server" Text='<%# Eval("Item_Format") %>' 
        Visible="false"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField HeaderText="Format" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" 
      DataField="Format" HeaderStyle-Width="15%" /> 
     <asp:BoundField HeaderText="Duration" ItemStyle-HorizontalAlign="Right" DataField="Duration" 
      HeaderStyle-Width="7%" /> 
     <asp:TemplateField HeaderStyle-Width="7%" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" 
      FooterStyle-HorizontalAlign="Right" HeaderText="Quantity"> 
      <ItemTemplate> 
       <asp:TextBox ID="txtQuantity" Enabled="false" CssClass="quantity" Text='<%#Eval("Quantity")%>' 
        onblur="fnquantityEmpty(this)" onkeyup="extractNumber(this,0,false);" onkeypress="return blockNonNumbers(this, event, false, false);" 
        runat="server" MaxLength="4" AutoPostBack="true" OnTextChanged="Qty_Changed"></asp:TextBox> 
      </ItemTemplate> 
      <FooterTemplate> 
       <strong> 
        <asp:Label ID="lblFooterQuantity" runat="server"></asp:Label></strong> 
      </FooterTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Price" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Center" 
      HeaderStyle-Width="7%"> 
      <ItemTemplate> 
       <asp:Label ID="lblPrice" runat="server" Text='<%#getConvertedPrice(Eval("Price")) %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="txtItemOwnerID" runat="server" Text='<%# Eval("ItemOwnerID") %>' 
        Visible="false"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Subtotal" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" 
      FooterStyle-HorizontalAlign="Right" HeaderStyle-Width="8%"> 
      <ItemTemplate> 
       <asp:Label ID="lblSubTotal" runat="server" Text='<%#getConvertedPrice(Eval("Subtotal")) %>'></asp:Label> 
      </ItemTemplate> 
      <FooterTemplate> 
       <strong> 
        <asp:Label ID="lblFooterTotalPrice" runat="server" Text="" ToolTip="Total"></asp:Label></strong> 
      </FooterTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

よろしく

+0

ありがとうございました。私はそれを行うことができませんでした。 –

+0

これまでに何をしていますか?ここにgridviewのマークアップを投稿できますか? – CoderHawk

+0

ここをクリックhttp://www.screencast.com/t/s9UVdtO3FR私の古いグリッドビューのスクリーンショットを与えました。ここでは、カートアイテムを削除するためのClickイベントと、グリッドのレンダリングを再度割り当てました。 –

答えて

0

下記のリンクをご確認ください。 GridViewで複数の行を適用する方法についての解説があります。うまくいけば、それはあなたを得るでしょう。

+0

これまで誰がダウン投票したのですか?この回答は受け入れられ、両方のリンクがうまく機能しています! – utsikko

+3

私はdownvoteしませんでしたが、私はリンクのみの回答として報告しました。 http://meta.stackoverflow.com/questions/269958/regarding-the-two-flags-not-an-answer-being-declinedのディスカッションを参照してください。通常、このケースのテキストは「このリンクで質問に答えることができますが、ここでは、回答の重要な部分を含めて参照用のリンクを提供する方がいいです。リンクされたページが変更された場合、リンクのみの回答は無効になる可能性があります。私はそれがここに当てはまると思います。 [他の場所のリンクに本当に "良い答え"が含まれているか?](http://meta.stackexchange.com/q/8231/209901) – fedorqui

1

あなたはGridViewのを放棄し、代わりにRepeaterコントロールを使用して考えがありますか?これにより、柔軟性が向上します。私はお勧めし

+0

感謝しましたが、私は新しいコードを作成しなければなりませんが、私はちょうどここで設計を変更しているので、それを決定するのは非常に複雑になります。おそらく他の方法があれば、私はそれだけを好むでしょう。 –

+0

これは答えではなく、単なるコメントです。おそらく、元の投稿の下に属しています。 –

1

最善のことは、あなたのデータソースの上にそれぞれ値として&規約/スケジュールによって提供されるaddがタイトル&タイプ/フォーマットのためにあるべき行を追加しています。

これは、あなたのために望ましい出力を生成します。

ハッピーコーディング!

+1

ええと、私はこれだけをやって、OnRowCreatedEventに行を追加し、マイデザインを実装しました。 :) –

1

オプションは、あなた自身のRenderMethodを設定し、HTMLを自分で書くヘッダーのRowDataBoundを処理し、行型にすることであろう。

e.Row.SetRenderMethodDelegate(New RenderMethod(AddressOf RenderHeader)) 
関連する問題