Ein paar Fragen zum DataGrid in ASP.NET

04/06/2008 - 15:31 von Uwe Ricken | Report spam
Hallo zusammen,

ich habe ein paar Fragen zum Datagrid, zu denen ich leider bisher noch keine
Antworten / Eigenschaften gefunden habe.
Vielleicht könnt Ihr mir ein wenig auf die Sprünge helfen:

1. Ich möchte die einzelnen Spalten "<asp.HyperlinkColumn>" und
"<asp.BoundColumn>" gerne mt individuellen Breiten einstellen. Derzeit
stellt mir die Seite die Spalten automatisch ein.

2. Es gibt eine "<asp.BoundColumn>", die einen Schlüsselwert beeinhaltet.
Wie kann ich beim Klicken auf eine Zeile herausbekommen,
- welche Zeile ich angeklickt habe
- welchen Wert dieses Schlüsselspalte besitzt

3. Mein DataGrid zeigt Termine an. Diese Termine sind mit Prioritàten
versehen.
Ich möchte, dass jede Zeile mit der Prioritàt "Hoch" automatisch in rot
angezeigt wird.

Geht das?

Vielen herzlichen Dank für Eure Unterstützung.


Gruß, Uwe Ricken
MCP for SQL Server 2000 Database Implementation

db-Berater GmbH - 64390 Erzhausen
http://www.db-berater.de
http://www.memberadmin.de
http://www.conferenceadmin.de
____________________________________________________
dbdev: http://www.dbdev.org
FAQ: http://www.donkarl.com/AccessFAQ.htm
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
04/06/2008 - 20:43 | Warnen spam
Hallo Uwe,

"Uwe Ricken" schrieb:

ich habe ein paar Fragen zum Datagrid,



vorab eine Gegenfrage: Verwendest Du VS 2005 oder 2008? Falls ja, warum
nimmst Du nicht das GridView anstelle des DataGrid?

1. Ich möchte die einzelnen Spalten "<asp.HyperlinkColumn>" und "<asp.BoundColumn>" gerne mt individuellen Breiten einstellen.
Derzeit stellt mir die Seite die Spalten automatisch ein.



<asp:BoundColumn HeaderStyle-Width="100" ... />

Beachte aber, dass das nur dann was bewirkt, wenn Du die Breite der Tabelle
(des DataGrid Controls) auch absolut angibst oder Du noch irgendwo eine Spalte
hast, die die nicht explizit zugewiesene Breite einnehmen kann (also eine
Column ohne Breitenangabe, die dehnt sich dann automatisch aus).

2. Es gibt eine "<asp.BoundColumn>", die einen Schlüsselwert beeinhaltet.
Wie kann ich beim Klicken auf eine Zeile herausbekommen,
- welche Zeile ich angeklickt habe
- welchen Wert dieses Schlüsselspalte besitzt



Auf eine Zeile? Meinst Du jetzt _irgendwo_ in der Zeile? Da müsstest Du mit
JavaScript arbeiten um die Werte dann zu übergeben. Alternativ kannst Du
auch eine ButtonColumn einfügen und dann auf OnItemCommand reagieren. In
dem Fall steht in e.DataItem der Datensatz der Datenquelle drin (und da
dann natürlich auch der Key).

3. Mein DataGrid zeigt Termine an. Diese Termine sind mit Prioritàten versehen.
Ich möchte, dass jede Zeile mit der Prioritàt "Hoch" automatisch in rot angezeigt wird.



Protected Sub <DataGrid>_ItemDataBound( ... ) Handles <DataGrid>.ItemDataBound

If e.Item.ItemType <> ListItemType.Item AndAlso _
e.Item.ItemType <> ListItemType.AlternatingItem Then
Exit Sub
End if

Dim Priority As <Irgendwas> = CType( e.Item.DataItem( "Priority" ), <Irgendwas> )
If Priority = High Then
e.Item.Cells( <Index> ).BackColor = Drawing.Color.Red
End If

End Sub

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen