Domanda

Ho una pagina con un controllo listview e un controllo datapager. L'origine dati listviews è impostata a livello di codice utilizzando questo codice:

Dim dal as new dalDataContext
Dim bookmarks = From data In dal.getData(userid)
listview1.DataSource = bookmarks
listview1.DataBind()

Quando provo questa pagina in un browser viene visualizzato l'errore: 'ListView con ID' listview1 'deve avere un'origine dati che implementa ICollection o può eseguire il paging dell'origine dati se AllowPaging è vero.'

Come posso implementare il paging in questo scenario?

Grazie

È stato utile?

Soluzione

Prova

listview1.DataSource = bookmarks.ToArray()

Ho avuto lo stesso problema questa settimana.

Altri suggerimenti

Una risposta al problema del doppio clic che l'OP ha successivamente riscontrato: spostare Databind sul gestore eventi OnPreRender:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        listview1.DataBind();
    }

o forse creare una proprietà della pagina cambiando e bindlistview lì.

protected void lv_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
{
    //set current page startindex, max rows and rebind to false
    DataPager dp = lvNews.FindControl("lvDataPager1") as DataPager;
    dp.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);

    BindListView();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top