Permalänk
Medlem

ASP.net ListView

Hej på er,

jag sitter och försöker att fylla en listView med en lista.
Men den syns inte när jag kör projektet i vs 2010.

Information:

Jag har gjort en metod Loadmessages(string username), som tar ett username som parameter. username hämtas från webprofiles för inloggad användare.
LoadMessages hämtar en lista av datatypen Msg (kompositklass) för inloggad användare. Testat så det fungerar i WCF Test client.

När jag mottar listan från LoadMessages loopar jag igenom denna och lägger till objekten i en lista jag kallar list.
Men när jag sedan försöker tilldela list som datasource till min ListView så visar den ingenting.

Kod:
public partial class Messages : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using (var client = new ServiceReference1.Service1Client())
{
List<Msg> list = new List<Msg>();
string username = WebProfile.Current.UserName;
var mail = client.LoadMessages(username);

foreach (Msg v in mail)
{
list.Add(v);

}
ListView1.Visible = true;
ListView1.DataSource = list;
ListView1.DataBind();
}
}

Applikationen är en asp web application.
Metoden LoadMessages är skriven i Service1.svc.

Någon som ser något som är fel, eller har en misstanke om varför min listview inte visar några meddelanden när jag debuggar projektet?

Stort tack för er hjälp

/Rickard

Permalänk
Medlem
Skrivet av bornrich:

Hej på er,

jag sitter och försöker att fylla en listView med en lista.
Men den syns inte när jag kör projektet i vs 2010.

Information:

Jag har gjort en metod Loadmessages(string username), som tar ett username som parameter. username hämtas från webprofiles för inloggad användare.
LoadMessages hämtar en lista av datatypen Msg (kompositklass) för inloggad användare. Testat så det fungerar i WCF Test client.

När jag mottar listan från LoadMessages loopar jag igenom denna och lägger till objekten i en lista jag kallar list.
Men när jag sedan försöker tilldela list som datasource till min ListView så visar den ingenting.

Kod:
public partial class Messages : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using (var client = new ServiceReference1.Service1Client())
{
List<Msg> list = new List<Msg>();
string username = WebProfile.Current.UserName;
var mail = client.LoadMessages(username);

foreach (Msg v in mail)
{
list.Add(v);

}
ListView1.Visible = true;
ListView1.DataSource = list;
ListView1.DataBind();
}
}

Applikationen är en asp web application.
Metoden LoadMessages är skriven i Service1.svc.

Någon som ser något som är fel, eller har en misstanke om varför min listview inte visar några meddelanden när jag debuggar projektet?

Stort tack för er hjälp

/Rickard

Ok, nu har jag kommit så långt att jag ser att list fylls med mail.

Problemet jag har nu är att jag får felmeddelandet:
En ItemTemplate måste vara definierad på ListView ListView1.

Jag förstår att jag måste fixa en ItemTemplate på min listview.
Alla googlingar föreslår att jag måste fixa en datasource via configuratorn för att sedan ställa in itemtemplate.
Men går det inte att komma förbi det eftersom jag redan manuellt satt en datasource?

Permalänk
Medlem
Skrivet av bornrich:

Ok, nu har jag kommit så långt att jag ser att list fylls med mail.

Problemet jag har nu är att jag får felmeddelandet:
En ItemTemplate måste vara definierad på ListView ListView1.

Jag förstår att jag måste fixa en ItemTemplate på min listview.
Alla googlingar föreslår att jag måste fixa en datasource via configuratorn för att sedan ställa in itemtemplate.
Men går det inte att komma förbi det eftersom jag redan manuellt satt en datasource?

Den vill nog ha en ItemTemplate för att den inte vet vad eller hur den ska presentera datat då du fyller den med custom objekt (Msg).
Om du kikar på dokumentationen för ItemTemplate-propertyn så ser du i koden hur du kan göra det och varför det behövs.
Om du har satt en Datasource är det bra men du måste ha en ItemTemplate för att förklara för ListViewn hur den ska rita ut varje Msg-objekt.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcont...

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Den vill nog ha en ItemTemplate för att den inte vet vad eller hur den ska presentera datat då du fyller den med custom objekt (Msg).
Om du kikar på dokumentationen för ItemTemplate-propertyn så ser du i koden hur du kan göra det och varför det behövs.
Om du har satt en Datasource är det bra men du måste ha en ItemTemplate för att förklara för ListViewn hur den ska rita ut varje Msg-objekt.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcont...

Tack :). Använde den som autogenereras och modifierade den. Men nu så har jag inte möjlighet att använda eventet SelectedItemChanged eller liknande. Är som att den inte finns med alls utan endast SelectedIndex. Men borde ha båda tycker jag. så får bygga om template från scratch om det nu har med det att göra

Permalänk
Medlem
Skrivet av bornrich:

Tack :). Använde den som autogenereras och modifierade den. Men nu så har jag inte möjlighet att använda eventet SelectedItemChanged eller liknande. Är som att den inte finns med alls utan endast SelectedIndex. Men borde ha båda tycker jag. så får bygga om template från scratch om det nu har med det att göra

http://forums.asp.net/t/1305147.aspx/1

Tydligen fungerar inte eventet om man databindar manuellt.

Finns säkert någon bra anledning till det som jag troligtvis inte håller med Microsoft om. Sånt man får ta när man använder kontroller. Jag har slitit i mitt hår i alla år jag har jobbat med DataGridView-komponenten (ej webb-kontrollen).

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?