Wie setzen CssClass auf den button im DataGrid
Ich habe eine ButtonColumn in einem DataGrid:
<asp:ButtonColumn HeaderText="Edit" ButtonType="PushButton" Text="Edit" />
Wie muss ich es einstellen der CSS-Klasse?
Nur so kann ich sehen, es zu tun, ist Einhaken der RowDataBound-Ereignis:
Protected Sub dgSchedule_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgSchedule.ItemDataBound
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
DirectCast(e.Item.Cells(6).Controls(0), Button).CssClass = "confirmButton"
End If
End Sub
Ich einfach das Gefühl, es muss ein ordentlicher Weg. Was passiert, wenn ich Spalten hinzufügen/entfernen, ich werde wieder kommen hier und denken Sie daran, ändern Sie die Spalte 6...
Versuchte ich mit einem TemplateColumn
und einem gewöhnlichen asp:Button
- Das funktionierte, aber dann auf es nicht Feuer, das ItemCommand-Ereignis des Rasters, die ich brauche, um das Feuer.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe dieses Problem gelöst, indem mit einem GridView-statt einem DataGrid. Eigentlich nicht sicher, warum ich eine DataGrid in den ersten Platz.
Dies gibt eine zusätzliche Eigenschaft
ControlStyle-CssClass
z.B.
Du hast zwei Optionen:
1. Sie können die Eigenschaft CssClass der ButtonColumn:
Hierdurch werden die folgenden HTML-Code:
Wie Sie sehen können, die CSS-Klasse ist tatsächlich angewandt-element enthalten. Zum Stil der Spalte, dies zu tun:
Und Stil die tatsächliche Taste, tun dies in Ihrer CSS:
2. Alternativ können Sie eine TemplateColumn statt eine ButtonColumn und legen Sie die Eigenschaft CssClass der verschachtelten button-Steuerelement:
Den CSS-Code für das ist nur, wie man erwarten würde:
Wenn Sie benötigen, um stick mit DataGrid eher als GridView, ein Weg, um dieses problem zu lösen, um das setup eine
OnItemDataBound
Veranstaltung.Dann in der code-behind können Sie der Anlage die CSS-Klasse der Schaltfläche wie folgt: