0

我有一个返回 8000 个结果的网格,我想按日期过滤这些结果并将它们存储到一个新的数据表中并稍后重新绑定。我收到此错误:

Input array is longer than the number of columns in this table.

我有哪些选择?

if (e.CommandName == "Filter")
{
    DataTable dt = new DataTable();

    foreach (GridDataItem item in RadGrid2.Items)
    {
        for (int i = 0; i < RadGrid2.Items.Count; i++ )
        {
            dt.Rows.Add(item);
        }
    }
4

2 回答 2

1
if (e.CommandName == "Filter")
     {
        DataTable dt = new DataTable();
        td.Columns.Add("Column1");
        td.Columns.Add("Column2");
        //etc.
        //add same columns as you have in RadGrid2

        foreach (GridDataItem item in RadGrid2.Items)
        {

            for (int i = 0; i < RadGrid2.Items.Count; i++ )
            {

                dt.Rows.Add(item);
            }
        }

您必须将列添加到您的 DataTable td。项目不能添加到任何地方。

于 2012-11-20T19:19:29.027 回答
0

将 8000 个结果返回给 RadGrid 太多了。

请考虑使用AllowCustomPaging,并仅检索您需要显示的行。

例如,在 Entity Framework 中使用Skip and Take 。

于 2012-11-20T19:24:12.937 回答