2012-04-11 13 views
2

Ich habe eine Rasteransicht der Warenkorb-Elemente, die zur Laufzeit gebunden wurde, jetzt meine Voraussetzung dafür ist, ich möchte zwei Kopfzeile in Grid wie unten im Bild angegeben, wie wird es sein möglich ? Kann mir jemand helfen?Erfordern zwei Header-Zeile in der Rasteransicht

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

Unten ist mein Gitter Quelle

<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> 

Grüße

+0

Danke Curt ich konnte das nicht .. –

+0

was hast du bisher gemacht? Kannst du das Gridview-Markup hier posten? – CoderHawk

+0

Sehen Sie hier http://www.screencast.com/t/s9UVdtO3FR Ihnen einen Screenshot meiner alten Grid View gegeben. In dem ich Click-Ereignis zum Entfernen von Warenkorb-Element zugewiesen und Gitter wieder gerendert habe. –

Antwort

0

Bitte überprüfen Sie die folgenden Links. Sie bieten eine Lösung zum Anwenden mehrerer Zeilen in GridView. Hoffentlich wird es dich in Schwung bringen.

+0

Wer war jemals downvoted? Bitte erklären Sie warum? Diese Antwort wurde akzeptiert und beide Links funktionieren einwandfrei! – utsikko

+3

Ich habe nicht downvote, aber ich habe es als Link nur als Antwort gemeldet. Siehe Diskussion in http://meta.stackoverflow.com/questions/269958/regarding-the-two-flags-not-an-answer-being-declined Normalerweise ist der Text für diese Fälle "Während dieser Link die Frage beantworten kann, Es ist besser, die wesentlichen Teile der Antwort hier einzubeziehen und den Link als Referenz anzugeben. Link-Only-Antworten können ungültig werden, wenn sich die verlinkte Seite ändert. " und ich denke, das ist hier der Fall. Siehe auch [Sind Antworten, die nur Links enthalten, wirklich "gute Antworten"?] (Http://meta.stackexchange.com/q/8231/209901) – fedorqui

1

Haben Sie darüber nachgedacht, die gridview zu verlassen und ein Repeater-Steuerelement statt mit? Dies würde Ihnen mehr Flexibilität geben.

+0

Anerkannt, aber dafür muss ich neuen Code beginnen, aber ich habe gerade Designänderung hier, so dass es für mich sehr kompliziert sein wird, das zu bestimmen. Wenn es möglicherweise einen anderen Weg gibt, werde ich das nur bevorzugen. –

+0

Dies ist keine Antwort, nur ein Kommentar. Gehört wahrscheinlich unter den ursprünglichen Post. –

1

Beste Sache, die ich vorschlagen würde, ist eine Zeile, die oben auf Ihrer Datenquelle und für Titel & Typ/Format hinzugefügt werden sollte von & Terms/Schedule als Werte jeweils hinzufügen.

Dies würde die gewünschte Ausgabe für Sie generieren.

Glückliche Kodierung !!!

+1

Hmm, ich habe das nur gemacht, Zeile in OnRowCreatedEvent hinzugefügt und My Design Thanks implementiert. :) –

1

Eine Option, die RowDataBound und auf dem RowType für Kopf sein könnten Sie Ihre eigene RenderMethod gesetzt zu handhaben und die HTML selbst schreiben.

e.Row.SetRenderMethodDelegate(New RenderMethod(AddressOf RenderHeader)) 
Verwandte Themen