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);
            }
        }

DataTabletdに列を追加する必要があります。アイテムをどこにも追加できません。

于 2012-11-20T19:19:29.027 に答える
0

8000件の結果をRadGridに返すのは多すぎます。

AllowCustomPagingの使用を検討し、表示する必要のある行のみを取得してください。

たとえば、EntityFrameworkでSkipandTakeを使用します。

于 2012-11-20T19:24:12.937 に答える