Button platzieren als LETZTE Spalte in der gridview
Ich habe eine grid-Ansicht, und ich Spalten hinzufügen, um es durch code:
//Retrieve "Table" from database
gridOffers.DataSource = table;
gridOffers.DataBind();
Spalten Hinzugefügt von code Hinzugefügt werden, NACHDEM die Taste, die ist nicht das, was ich brauche:
Wie kann ich sicherstellen, dass der Add To Cart button, der Letzte, was?
Quelle des gridView:
<Columns>
<asp:ImageField DataImageUrlField="ImageUrl" ControlStyle-Width="100"
ControlStyle-Height = "100" HeaderText = "Preview Image"
ItemStyle-HorizontalAlign="Center">
<ControlStyle Height="100px" Width="100px"></ControlStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ImageField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false"
CommandName="btnAddToCart" Text="Add To Cart" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
- Was für Sie gearbeitet ? Ich habe das gleiche Problem
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist die Definition von Spalten in der GridView-Quelle UND durch databinding eine Datenquelle für das GridView. Daher haben Sie zwei Quellen von Spalten; es kann oder kann nicht eine garantierte Reihenfolge, in der Spalten Hinzugefügt werden, um das GridView.
Statt, warum nicht AutoGenerateColumns für das GridView, um False und dann explizit festlegen der Spaltenreihenfolge mithilfe BoundField für jedes gewünschte Feld aus der Datenquelle in Ihrem GridView-Quelle, gefolgt von der Bild-und button-Spalten?
AutoGenerateColumns
ist eingestellttrue
. Die Reihenfolge ist garantiert, da der deklarativ zusätzlichen Kontrollen werden zuerst erstellt und dann die Datenbindung/manuell erstellt. Das ist dokumentiert in der Page Lifecycle(search "erstellte Steuerelemente deklarativ").Ich weiß nicht, ob es eine weniger hacky Weg, aber man könnte
RowDataBound
um die Reihenfolge zu ändern, so dass die automatisch generierte Spalten, gefolgt von anderen Spalten:Haben Sie
AutoGenerateColumns
auf true gesetzt auf das Gridview? Wenn ja, setzen Sie dies auf false, und legen Sie manuell die Felder im raster mitasp:BoundField
Einstellung derDataField
auf den Namen des Feldes aus der Datenquelle.Diese Weise können Sie die exakte Reihenfolge der Spalten.
AutogenerateColumns=true
("Auto-generate-Felder"). Ich gehe davon aus, dass er fragt, wie die Steuerung der Reihenfolge der Spalten, auch wennAutoGenerateColumns
ist eingestellttrue
.