Ich habe eine Listenansicht, die mit einer Liste von Objekten geladen ist, die ein Attribut mit dem Namen AssigneeView
enthalten, das das Datum enthält, an dem der Eintrag geöffnet wurde. Die listview's
ItemTemplate
hat eine Bezeichnung mit dem Namen "lblHeader". Was ich tun möchte, ist Schleife durch die ListView
.Items und überprüfen Sie jedes Element AssigneeView
Attribut, wenn es null
ist, möchte ich die lblHeader.Text
fett (was darauf hinweist, es ist ungelesen).Wie durchlaufe ich jedes readlistviewitem, überprüfe den Wert und setze ihn fett?
Ich möchte ein Verfahren zu schaffen, die ein Attribut aus den Object
in der Liste Elemente ticketID
nimmt genannt und Nachschlag, ob das AssigneeView
Feld für dieses Feld null ist und ein bool
zurück. So würde es so aussehen wie
ForEach item in listview.Items
if(IsUnread(item.datamember.ticketID)) then
item.lblHeader.MakeBold
else
item.lblHeader.MakeNotBold
Ich bin nicht 100% wie in die Telerik Kontrolle zu graben, zu bekommen, was ich brauche, dies zu tun. Irgendwelche Vorschläge?
UPDATE: hier, wo ich im Moment bin:
using (var client = new QUTIService.QSVCClient())
{
var data = client.SearchTickets(this.myGuid, txtSearchString.Text, 100, chkSearchClosed.Checked).ToList();
lsvResultTickets.DataSource = data;
lsvResultTickets.DataBind();
if (data.Count == 0)
{
lblStatus.Text = "No tickets found.";
}
else
{
foreach (var item in lsvResultTickets.Items)
{
var obj = item.DataItem as QT.FullTicket;
if (TicketIsUnread(obj.OriginalTicket.TicketID))
{
//???
}
}
}
}
Ok, also habe ich es in einen Event-Handler. RadListViewItemEventArgs e ist die Referenz. Ich kann mit e.Item.FindControl ("lblHeader") auf das Label zugreifen und es fett formatieren. Aber ich habe Probleme, das Objekt aus dem Objekt zu entfernen. Regelmäßige asp-Steuerelemente sind normalerweise ziemlich einfach: (Type) e.Item oder so ähnlich. Aber e.Item ist vom Typ RadListViewItem und wird nicht in das FullTicket-Objekt umgewandelt, das darin enthalten ist. – Sinaesthetic