سؤال

ولدي صفحة مع عنصر تحكم ListView والتحكم datapager. يتم تعيين مصدر بيانات listviews برمجيا باستخدام هذا الرمز:

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

وعندما كنت اختبار هذه الصفحة في مستعرض أنها تأتي مع الخطأ: 'ListView مع معرف' listview1. يجب أن يكون مصدر البيانات إما أن تنفذ ICollection أو يمكن أن تؤدي البيانات المصدر الترحيل إذا AllowPaging صحيح '

وكيف يمكنني تنفيذ الترحيل في هذا السيناريو؟

والشكر

هل كانت مفيدة؟

المحلول

وحاول

listview1.DataSource = bookmarks.ToArray()

وكان لي نفس المشكلة هذا الأسبوع.

نصائح أخرى

وإجابة لمشكلة النقر مرتين أن OP اجه في وقت لاحق - نقل DataBind عناصر إلى معالج الأحداث OnPreRender:

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

وأو ربما إنشاء خصائص الصفحة تغيير وbindlistview هناك.

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();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top