【问题标题】:The data source does not support server-side data paging.why?数据源不支持服务端数据分页,为什么?
【发布时间】:2013-12-14 05:47:51
【问题描述】:

我有一个网格视图:

<asp:GridView ID="GridView1" runat="server"
            ForeColor="ActiveCaptionText" BackColor="#FFFF99" GridLines="None"
            onpageindexchanging="GridView1_PageIndexChanging" AllowPaging="True"
            CssClass="gridrownormal" onpageindexchanged="GridView1_PageIndexChanged">



        </asp:GridView>

并使用此代码绑定数据:

GridView1.DataSource = null;

               List<SearchEngineEO> docs = Search(txtSearch1.Text, ddlSelectCondition1.Text);

               var query18 = (from c in docs select new { c.DocNO, c.DocType, c.Title,  c.PublisherName, c.PublishedDate}).ToList().Distinct();

               GridView1.DataSource = query19;
                GridView1.DataBind();

如果我将 allowpaging 设置为 false 一切正常,但当设置为 true 时,我会看到此错误:

“数据源不支持服务器端数据分页。”

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    这是因为当您在 gridview 上打开此属性时,它会使用其内置的分页功能,该功能只能与扩展 ICollection 接口的数据源一起使用。 ..在这种情况下,您的对象(query19)不支持它。您应该能够通过反转 linq 扩展方法调用来使其工作......而不是这样做......

    ToList ().Distinct ()
    

    这样做....

    Distinct().ToList()
    

    应该可以的

    【讨论】:

      【解决方案2】:

      这可能是因为您尝试使用“var query18”获取数据,然后使用“query19”将值分配给“GridView1.DataSource”,或者是拼写错误??

      另一件事是尝试实例化“GridView1.DataSource”而不是 null。

      【讨论】:

        猜你喜欢
        • 2010-12-12
        • 2012-03-12
        • 2014-08-20
        • 2012-03-31
        • 2018-09-12
        • 2013-08-06
        • 1970-01-01
        相关资源
        最近更新 更多